Python の __init__
__init__ メソッド Python では、クラスのオブジェクトを初期化するために使用されます。コンストラクターとも呼ばれます。
__init__ メソッドの概念を完全に理解するには、以下について理解しておく必要があります。
前提条件 – Python クラスとオブジェクト 、 自己
Python の __init__ とは何ですか?
__init__ メソッド のデフォルトのコンストラクターのようなものです C++ そして ジャワ 。コンストラクターは、オブジェクトの状態を初期化するために使用されます。
コンストラクターのタスクは、クラスのオブジェクトの作成時に、クラスのデータ メンバーを初期化する (値を割り当てる) ことです。
メソッドと同様に、コンストラクターには、オブジェクトの作成時に実行されるステートメント (つまり、命令) のコレクションも含まれています。これは、クラスのオブジェクトがインスタンス化されるとすぐに実行されます。
このメソッドは、オブジェクトに対して実行したい初期化を行うのに役立ちます。
Python3
# A Sample class with init method> class> Person:> > # init method or constructor> > def> __init__(> self> , name):> > self> .name> => name> > # Sample Method> > def> say_hi(> self> ):> > print> (> 'Hello, my name is'> ,> self> .name)> p> => Person(> 'Nikhil'> )> p.say_hi()> |
出力:
Hello, my name is Nikhil
コードを理解する
上の例では、Nikhil という名前の人物が作成されます。人の作成中に Nikhil が引数として渡され、この引数は __init__ メソッドに渡されてオブジェクトを初期化します。
キーワード self はクラスのインスタンスを表し、属性を指定された引数にバインドします。同様に、異なる名前を引数として渡すことによって、Person クラスの多くのオブジェクトを作成できます。
以下は__の例です パラメータを使用した Python の init__
Python の __init__ メソッドの例
Python の __init__ メソッドの例をいくつか見てみましょう。
Python3
# A Sample class with init method> class> Person:> > # init method or constructor> > def> __init__(> self> , name):> > self> .name> => name> > # Sample Method> > def> say_hi(> self> ):> > print> (> 'Hello, my name is'> ,> self> .name)> # Creating different objects> p1> => Person(> 'Nikhil'> )> p2> => Person(> 'Abhinav'> )> p3> => Person(> 'Anshul'> )> p1.say_hi()> p2.say_hi()> p3.say_hi()> |
出力:
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul
継承のある __init__ メソッド
継承 あるクラスが他のクラスからプロパティを派生または継承する機能です。 __init__ が継承でどのように機能するかを確認するために、以下の例を考えてみましょう。
Python3
# Python program to> # demonstrate init with> # inheritance> class> A(> object> ):> > def> __init__(> self> , something):> > print> (> 'A init called'> )> > self> .something> => something> class> B(A):> > def> __init__(> self> , something):> > # Calling init of parent class> > A.__init__(> self> , something)> > print> (> 'B init called'> )> > self> .something> => something> obj> => B(> 'Something'> )> |
出力:
A init called B init called
したがって、親クラスのコンストラクターが最初に呼び出されます。ただし、Python では、親クラスのコンストラクターが常に最初に呼び出される必要はありません。
親クラスまたは子クラスに対して __init__ メソッドが呼び出される順序は変更できます。これは、子クラス コンストラクターの本体の後に親クラス コンストラクターを呼び出すことで簡単に実行できます。
例:
Python3
# Python program to> # demonstrate init with> # inheritance> class> A(> object> ):> > def> __init__(> self> , something):> > print> (> 'A init called'> )> > self> .something> => something> class> B(A):> > def> __init__(> self> , something):> > print> (> 'B init called'> )> > self> .something> => something> > # Calling init of parent class> > A.__init__(> self> , something)> obj> => B(> 'Something'> )> |
出力:
B init called A init called
読む : Python の継承
Python の __init__ について説明し、__init__ の使用方法について説明し、Python で __init__ メソッドを使用する例もいくつか見てきました。
コンストラクターは OOP の重要な概念であり、__init__ メソッドはコンストラクターに非常に似ています。
この記事が __init__ メソッドの学習に役立ち、プロジェクトで使用できるようになることを願っています。
関連記事
- __init__() は Python のプライベート メソッドですか?
- __init__ と __call__ の違いは何ですか?
- Python の __new__