Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Penguatkuasaan hujah kata kunci fungsi dalam Python

Penguatkuasaan hujah kata kunci fungsi dalam Python

Patricia Arquette
Patricia Arquetteasal
2024-10-22 12:51:02727semak imbas

Enforcement of function keyword arguments in Python

Sebelum memulakan peranan baharu saya beberapa bulan lalu, sudah lama sangat saya tidak memprogramkan dalam Python.

Secara kebetulan, saya terus bekerja dalam peranan sejak beberapa tahun lalu yang melibatkan sama ada Javascript timbunan penuh atau kebanyakannya Javascript dengan sedikit bahasa lain (terkini Go).

Jadi seronok untuk meregangkan otot saya sedikit dalam bahasa yang berbeza, terutamanya bahasa yang mudah diakses seperti Python.

Satu ciri bahasa yang saya nikmati sekarang ialah penguatkuasaan hujah kata kunci kepada fungsi menggunakan sifat kw_only yang boleh diakses dalam penghias @dataclass.

Ia menghasilkan kod yang kelihatan seperti ini:

from dataclasses import dataclass

@dataclass(kw_only=True)
class Person:
    name: str
    age: int
    city: str

person1 = Person("Alice", 30, "New York")

menimbulkan ralat, kerana penggunaan kw_only mengharapkan untuk melihat sesuatu seperti berikut:

from dataclasses import dataclass

@dataclass(kw_only=True)
class Person:
    name: str
    age: int
    city: str = "Unknown"

person1 = Person(name="Alice", age=30, city="New York")

Walaupun ralat timbul:

TypeError     

Traceback (most recent call last)
Cell In[8], line 10
      7     city: str = "Unknown"

---> 10 person1 = Person("Alice", 30, "New York")

TypeError: Person.__init__() takes 1 positional argument but 4 were given

adalah "jelas" kerana ia akan menunjukkan kepada anda bahawa terdapat terlalu banyak hujah kedudukan yang disediakan, jika anda tidak biasa dengan kw_only ia boleh menjadi agak membingungkan kerana ia kelihatan seperti anda menggunakan fungsi tersebut dengan betul.

Jika anda berasal dari latar belakang Javascript/Typescript seperti saya, atau mempunyai pengalaman sebelumnya dengan bahasa seperti Go atau Rust yang menguatkuasakannya menggunakan sesuatu seperti struct di mana anda boleh memberikan hujah dalam apa jua susunan yang anda suka selagi kerana sifat mengikut bentuk objek/struktur, maka ini akan terasa biasa dan mungkin merupakan tambahan yang dialu-alukan pada kod Python anda.

Ini amat berguna jika anda menggunakan sejumlah besar hujah, sesetengah daripadanya mungkin pilihan.

Atas ialah kandungan terperinci Penguatkuasaan hujah kata kunci fungsi dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn