クラス コンストラクター名の一致しないアンダースコア
Python では、クラス コンストラクター名の一致しないアンダースコアが原因でクラスを作成するときにエラーが発生することがよくあります。 "def __int__" または "def _init_" の代わりに、正しい構文は、両側に 2 つのアンダースコアを付けた "def __init__" である必要があります。
TypeError: クラス メソッドは No を受け取りますArguments
クラス コンストラクターが引数を受け取らない場合、クラス が「引数を受け取らない」 ことを示す TypeError が発生する可能性があります。これは、アンダースコアが一致しない "__int__" メソッドが構文的には有効ですが、有効なクラス コンストラクターではないために発生します。その結果、Python は引数をとらない基本オブジェクト コンストラクターにフォールバックします。
AttributeError: Attribute Missing from Class Instance
あるいは、クラスコンストラクターは引数を受け取りますが、属性を適切に初期化しないため、次のような問題が発生する可能性があります。これらの属性にアクセスしようとすると、AttributeError が発生します。これは、アンダースコアが一致しない "_init_" メソッドが属性を正しく初期化しないためです。
例外メッセージの説明
予防と緩和
これらのエラーを回避するには、クラス コンストラクターに正しいスペルと構文を使用します。 "def __init__(self, ...)" の両側に 2 つのアンダースコアが付きます。校正と細部への細心の注意は、こうしたタイプミスを防ぐのに役立ちます。さらに、クラスの最初のメソッドとして "__init__" を配置する規則を使用すると、その正しい実装を思い出させることができます。
以上がPython クラス コンストラクターを定義するときに「TypeError」または「AttributeError」が発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。