1. ホーム
  2. python

[解決済み] Pythonのコンストラクタと__init__について

2022-10-29 23:23:45

質問

なぜコンストラクタはコンストラクタと呼ばれるのですか?また、クラスのメソッドとどのように違うのですか?

また、1つ以上の __init__ を複数作成することはできますか?以下のように試してみたのですが、どなたか結果を説明していただけませんか?

>>> class test:
    def __init__(self):
        print "init 1"
    def __init__(self):
        print "init 2"

>>> s=test()
init 2

最後に __init__ は演算子オーバーローダーなのでしょうか?

どのように解決するのですか?

Pythonには関数のオーバーロードがありません。つまり、同じ名前で異なる引数を持つ関数を複数持つことはできません。

あなたのコード例では オーバーロード __init__() . 何が起こるかというと、2番目の定義である を再定義します。 という名前 __init__ を新しいメソッドに結びつけ、最初のメソッドをアクセス不能にします。

コンストラクタに関する一般的な質問ですが ウィキペディア は良い出発点です。Python 固有のものについては Python ドキュメント .