Penguatkuasaan hujah kata kunci fungsi dalam Python

Patricia Arquette
Lepaskan: 2024-10-22 12:51:02
asal
813 orang telah melayarinya

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")
Salin selepas log masuk

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")
Salin selepas log masuk

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
Salin selepas log masuk

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!

sumber:dev.to
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan