ホームページ > バックエンド開発 > Python チュートリアル > クラスの初期化が「__init__」ではなく「__int__」または「_init_」で失敗するのはなぜですか?

クラスの初期化が「__init__」ではなく「__int__」または「_init_」で失敗するのはなぜですか?

Linda Hamilton
リリース: 2024-11-24 13:33:19
オリジナル
310 人が閲覧しました

Why Does My Class Initialization Fail with

「def __int__」または「def _init_」でクラスの初期化が失敗する理由

問題:
「def __int__」という名前のコンストラクターを使用してクラスをインスタンス化しようとした場合または「def _init_」を使用すると、「TypeError: Example() には引数がありません」または「AttributeError: 'Example' object has no attribute 'attribute'」などのエラーが発生します。

原因:
これらのエラーは、コンストラクターの名前が間違っているというタイプミスが原因で発生します。コンストラクターの正しい名前は次のとおりです。 "__init__"、両側に 2 つのアンダースコアが付いています。

例外メッセージの説明:

  • TypeError: Python は、関数呼び出しが定義されていないパラメーターに引数を割り当てようとすると、TypeError を発生させます。
  • AttributeError: このエラーは、コンストラクターが正しく定義されていないため、オブジェクトに存在しない属性にアクセスしようとすると発生します。オブジェクトの属性は設定されていません。

エラーが発生しなかった理由以前:

メソッド名 ""def __int__" および ""def _init_"" は構文的に有効であるため、構文エラー チェッカーはこのエラーを検出しません。 Python はこれらの名前に特別な意味を割り当てません。

潜在的な結果:

クラスを適切に初期化しないと、属性の欠落や実行時エラーなどの予期しない動作が発生する可能性があります。 .

問題:

  • コンストラクターの名前が「__init__」として正しく指定されていることを確認するためにコードを注意深く校正してください。
  • クラス定義の最初のメソッドとして「__init__」を配置することを検討してください。慣例として。
  • 構文チェックと潜在的な警告を提供する IDE を使用してください。エラー。

以上がクラスの初期化が「__init__」ではなく「__int__」または「_init_」で失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート