Python での関数キーワード引数の強制

Patricia Arquette
リリース: 2024-10-22 12:51:02
オリジナル
744 人が閲覧しました

Enforcement of function keyword arguments in Python

数か月前に新しい役割を始める前、Python でプログラミングするのはとても久しぶりでした。

ちなみに、私は過去数年間、フルスタックの Javascript か、主に Javascript と少し別の言語 (最近では Go) を使用する役割で働き続けました。

だから、別の言語、特に Python のようにアクセスしやすい言語で少し筋肉を伸ばすのは楽しかったです。

私が今楽しんでいるこの言語の機能の 1 つは、@dataclass デコレーターでアクセスできる kw_only プロパティを使用して関数にキーワード引数を強制することです。

次のようなコードが作成されます:

from dataclasses import dataclass

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

person1 = Person("Alice", 30, "New York")
ログイン後にコピー

kw_only の使用では次のような結果が期待されるため、エラーが発生します。

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")
ログイン後にコピー

エラーは発生しましたが:

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
ログイン後にコピー

は、指定された位置引数が多すぎることを示すという点で「明確」です。kw_only に慣れていない場合は、関数を適切に呼び出しているように見えるため、少し困惑する可能性があります。

私と同じように Javascript/Typescript のバックグラウンドを持っている場合、または、好きな順序で引数を指定できる構造体のようなものを使用してこれを強制する Go や Rust などの言語を使用した経験がある場合プロパティはオブジェクト/構造体の形状に従っているため、これは親しみやすく、Python コードへの追加として歓迎されるでしょう。

これは、多数の引数 (一部は省略可能) を扱う場合に特に便利です。

以上がPython での関数キーワード引数の強制の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!