Pythonは、構造化プログラミングとオブジェクト指向プログラミングの両方をサポートしています。 クラスとオブジェクトは、オブジェクト指向プログラミングを実装するために使用されます。 クラスは、オブジェクトのプロパティを定義します。 コンストラクターメソッドは、オブジェクト指向プログラミングでオブジェクトを宣言、初期化、および操作するために使用されます。このメソッドは、クラスのオブジェクトが作成されるときに自動的に呼び出されます。 ザ __初期化__() 関数はPythonのコンストラクターメソッドのように機能し、クラス内で宣言されます。
構文:
__init __()関数の構文を以下に示します。
__初期化__((自己、 [arguments])。
関数の最初の引数は、クラスの現在のオブジェクトを参照するために使用されます。 この関数の他の引数はオプションです。 クラス変数を初期化するために、最初の引数の後にゼロ個以上の引数を使用できます。 __init __()関数のさまざまな使用法は、チュートリアルの次の部分にあります。
例-1:引数なしのコンストラクターの使用
次のスクリプトを使用してPythonファイルを作成し、__ init __()関数を使用して引数なしでコンストラクターメソッドを定義します。 この関数は、TestClassのオブジェクトが作成されるときに呼び出されます。
クラス TestClass:
#コンストラクターメソッドを宣言する
def __初期化__((自己)。:
#簡単なメッセージを印刷する
印刷((「コンストラクターメソッドが呼び出されました。」)。
#クラスのオブジェクトを作成する
物体 = TestClass(()。
出力:
上記のスクリプトを実行すると、次の出力が表示されます。 クラスのオブジェクトが作成されたときに__init__()関数が呼び出され、__ init __()関数からのメッセージ「コンストラクターメソッドが呼び出されました」。 印刷されています。
例-2:引数付きのコンストラクターの使用
次のスクリプトを使用してPythonファイルを作成し、__ init __()関数を使用して引数付きのコンストラクターメソッドを定義します。 2つのオブジェクトが作成されました TestClass スクリプト内のクラス。 したがって、__ init __()関数は2回呼び出され、 名前 オブジェクトの作成時に関数に渡された値を持つ変数。
クラス TestClass:
#1つの引数でコンストラクターメソッドを宣言する
def __初期化__((自己、 名前)。:
#簡単なメッセージを印刷する
印刷((「コンストラクターメソッドが呼び出されました。」)。
#クラス変数を初期化しました
自己。名前 = 名前
#クラスのオブジェクトを作成する
object1 = TestClass((「ミールアッバス」)。
印刷((‘いらっしゃいませ、 ‘、 object1。名前)。
#クラスの別のオブジェクトを作成する
object2 = TestClass((「ニラ・チョードリー」)。
印刷((‘いらっしゃいませ、 ‘、 object1。名前)。
印刷((‘いらっしゃいませ、 ‘、 object2。名前)。
出力:
上記のスクリプトを実行すると、次の出力が表示されます。 最初のオブジェクトは値「MirAbbas」で作成され、2番目のオブジェクトは値「NilaChowdhury」で作成されています。 出力は、2番目のオブジェクトが最初のオブジェクトのクローンを作成することを示しています。 したがって、最初のオブジェクトのプロパティ値は2番目のオブジェクトによって上書きされませんでした。
例-3:別のメソッドでのコンストラクターの使用
コンストラクターメソッドが他のメソッドで宣言されている次のスクリプトを使用してPythonファイルを作成します。 ここで、__ init __()関数は、2つのクラス変数を初期化するために使用されるオブジェクト作成時に2つの引数値を取り、クラスの別のメソッドを呼び出してクラス変数の値を出力します。
クラス TestClass:
#1つの引数でコンストラクターメソッドを宣言する
def __初期化__((自己、 名前、 職業)。:
#簡単なメッセージを印刷する
印刷((「コンストラクターメソッドが呼び出されました。」)。
#クラス変数を初期化しました
自己。名前 = 名前
自己。職業 = 職業
#別のメソッドを呼び出す
自己。display_info(()。
#クラスの別のメソッドを定義する
def display_info((自己)。:
印刷((「の職業」、 自己。名前、 ” は “、 自己。職業)。
#クラスのオブジェクトを作成する
物体 = TestClass((「カビール・ホサイン」、 ‘最高経営責任者(CEO’)。
出力:
上記のスクリプトを実行すると、次の出力が表示されます。 2つのクラス変数が値で初期化されています。 「カビール・ホサイン」 と ‘最高経営責任者(CEO’ オブジェクト作成時に、これらの値が出力されています。
例-4:継承を伴うコンストラクターの使用
継承機能を備えたコンストラクターメソッドが実装されている次のスクリプトを使用してPythonファイルを作成します。 __init __()関数は、ここで親クラスと子クラスの両方に対して定義されています。 display()メソッドは、親クラスと子クラスの両方に対しても定義されています。 親クラスの__init__()関数には1つの引数があり、子クラスには3つの引数があります。
クラス ParentClass:
def __初期化__((自己、 名前)。:
印刷((「親コンストラクターが呼び出されました。 n「」)。
自己。名前 = 名前
def 画面((自己)。:
印刷((“名前: “、 自己。名前)。
#子クラスを宣言する
クラス ChildClass((ParentClass)。:
def __初期化__((自己、 名前、 役職、 給料)。:
#親クラスのコンストラクターを呼び出す
ParentClass。__初期化__((自己、 名前)。
印刷((「子コンストラクターが呼び出されました。 n「」)。
自己。役職 = 役職
自己。給料 = 給料
def 画面((自己)。:
印刷((“名前: “、 自己。名前)。
印刷((“役職: “、 自己。役職)。
印刷((“給料: “、 自己。給料)。
#親クラスのオブジェクトを作成する
object1 = ParentClass((「タンビルホセイン」)。
object1。画面(()。
#子クラスのオブジェクトを作成する
object2 = ChildClass((「ファーヒーン・ハサン」、 ‘最高経営責任者(CEO’、 700000)。
object2。画面(()。
出力:
上記のスクリプトを実行すると、次の出力が表示されます。
例-5:多重継承を持つコンストラクターの使用
次のスクリプトを使用してPythonファイルを作成します。ここで、子クラスは2つの親クラスから作成されています。 __初期化__() これらの3つのクラスに対して関数が定義されています。 子クラスには、という名前の別のメソッドがあります 画面()、クラス変数の値を出力します。
クラス ParentClass1:
def __初期化__((自己、 名前、 Eメール、 連絡先番号)。:
印刷((「親コンストラクターが呼び出されました。」)。
自己。名前 = 名前
自己。Eメール = Eメール
自己。連絡先番号 = 連絡先番号
#親クラスを宣言する
クラス ParentClass2:
def __初期化__((自己、 デパートメント、 役職)。:
印刷((「別の親コンストラクターが呼び出されました。」)。
自己。デパートメント = デパートメント
自己。役職 = 役職
#子クラスを宣言する
クラス ChildClass((ParentClass1、 ParentClass2)。:
def __初期化__((自己、 名前、 Eメール、 連絡先番号、 デパートメント、 役職、 給料)。:
#親クラスのコンストラクターを呼び出す
ParentClass1。__初期化__((自己、 名前、 Eメール、 連絡先番号)。
#別の親クラスのコンストラクターを呼び出す
ParentClass2。__初期化__((自己、 デパートメント、 役職)。
印刷((「子コンストラクターが呼び出されました。 n「」)。
自己。給料 = 給料
def 画面((自己)。:
印刷((“名前: “、 自己。名前)。
印刷((“Eメール: “、 自己。Eメール)。
印刷((“連絡先番号: “、 自己。連絡先番号)。
印刷((“デパートメント: “、 自己。デパートメント)。
印刷((“役職: “、 自己。役職)。
印刷((“給料: “、 自己。給料)。
#子クラスのオブジェクトを作成する
物体 = ChildClass((「ファーハン・アクター」、 ‘[email protected]’、 ‘8801937894567’、 「HR」、 ‘マネジャー’、 500000)。
#displayメソッドを呼び出す
物体。画面(()。
出力:
上記のスクリプトを実行すると、次の出力が表示されます。
結論
このチュートリアルでは、Pythonで__init __()関数を使用する方法を、Pythonユーザーがこの関数を適切に使用する目的を理解するのに役立つ簡単な例を使用して示しました。
The post Pythonでの__init__()関数の使用 appeared first on Gamingsym Japan.