スーパーJavascriptクラス
__main__ Python module |
ast Python module |
code Python module |
COM PHP module |
dis Python module |
Ev PHP module |
iat |
io Python module |
JavaScript |
os Python module |
PS PHP module |
Python functions |
re Python module |
resource Python module |
SPL PHP module |
StackOverflow |
struct Python module |
sys Python module |
time Python module |
types Python module |
UI PHP module
Michael Zippo
Pythonのsuper()メソッドを使用すると、子クラス内の親クラスのメソッドにアクセスできます。これにより、コードの繰り返しを減らすことができます。 super()は引数を取りません。 Pythonのようなオブジェクト指向プログラミング言語の主な特徴の1つは、継承です。継承は、新しいクラスが別のクラスのコードを使用して新しいクラスを作成するときに発生します。
クラスを継承すると、親クラスのメソッドにアクセスできます。ここでsuper()関数が登場します。
このチュートリアルでは、Pythonでの継承の基本について例を挙げて説明します。次に、親クラスから継承する値とメソッドに super()関数を使用する方法について説明します。
スーパーPythonとは何ですか?
super --Python()メソッドを使用すると、親クラスのメソッドにアクセスできます。 super()は、別のクラスが継承されているクラスのメソッドを表示する方法と考えることができます。
これがsuper()メソッドの構文です。
super()メソッドは引数を取りません。 super()メソッドの後に継承するメソッドを指定します。以前のPythonクラスは、foodクラスの__init __()メソッドから値を継承します。スーパー()クラスメソッドを、食品クラスから継承する値に呼び出します。
Python継承は、次のようなプロセスを指します。新しいクラスは、既存のクラスのコードを使用して、新しい1つのクラスの構造を定義します
継承について考える1つの方法は、子供がどのように子供から特性を継承するかを調べることです。親。子供は親と同じ髪の色を持ち、親から姓を継承することもできます。
Pythonには、次の2種類のクラスがあります。
- 子のクラス(または「サブクラス」)メソッドと変数を継承します。子クラスは姉妹クラスと呼ばれることもあります
- メインクラス(または「基本クラス」)は、値を継承できるクラスです
super()Python :. __ init __()
から継承銀行に口座を持っている人の資格情報を追跡するために、口座確認用のデータを格納するクラスを作成します。次のコードを使用して実行できます。
このコードは現在の口座プロジェクトを作成します。
ここで、子供の銀行口座のプロジェクトを格納するクラスを作成するとします。これを作成します。 ChildAccount を呼び出します。クラスは、前に定義した CheckingAccountクラスに基づいている必要があります。これを行うにはw eはsuper()関数を使用できます。
super()を使用すると、子クラス内の親クラスのメソッドにアクセスできます。 p> この例では、親クラスは CheckingAccount と呼ばれ、子クラスは ChildAccountと呼ばれます。 CheckingAccount は銀行口座のプロジェクトを作成し、 ChildAccountはCheckingAccountから値を継承して独自のクラスを作成します。
ここで、 ChildAccount クラスに、 CheckingAccountに保存されている値を継承させたいとします。ただし、このアカウントに is_child という新しい値を格納する必要もあります。これは、デフォルトではTrueである必要があります。
新しいChildAccountクラスは、次を使用して作成できます。このコード:
このコードは、新しい ChildAccountクラスのプロジェクトを作成します。 super()メソッドを使用して、Balance CheckingAccountクラスの名前と値を継承します。クラスの最初の行の括弧内にCheckingAccountの親クラスを指定します。
これは、 super()ですべての値を継承できることを示しています。別のクラスから。ただし、このコードでは、 is_childという新しい値も宣言しました。この値は、 ChildAccountクラス
子アカウント所有者のクラスのインスタンスを作成するには、次のコードを使用できます。
コードは次を返します:
Python変数lynnに割り当てられたChildAccountクラスのインスタンスを宣言しました。 lynn は、オブジェクトを使用して lynn の値を宣言していたため、クラスオブジェクトです。
Lynnのアカウントのアカウントは$200で、値は is_child はデフォルトでtrueです。次に、 name 、 balance 、 is_childの値を出力しました、accのリン叔母に関連付けられています。これらの値は、 print()Pythonメソッドを使用してコンソールに出力されます。
継承した理由 CheckingAccountクラスのnameとbalanceは、コードで使用できました。ただし、Lynnのアカウントには、 is_child の値のセットもあります。これは、 ChildAccountのすべてのインスタンスでデフォルトでTrueに設定されています。
super()Python:メソッドの継承
super()を使用すると、クラスは単一レベルの継承(親クラスから継承するクラス)を使用して継承できます。または、マルチレベル継承で super()を使用できます。この例では、 super()を使用した単一レベルの継承に焦点を当てます。
前の例では、 super()を使用して継承しました。値は、 CheckingAccount クラスに格納され、 ChildAccountクラスで使用できるようにします。しかし、メソッドから継承してその応答を変更したい場合はどうなりますか
CheckingAccountに戻るクラスは、最初から次のようになります。
Inこのクラスでは、クラスが格納する必要のある値の設計を定義しました- nameおよびbalance。 Checkbalance()というメソッドを定義しました。これにより、ユーザーは自分のバランスを確認できます
ここで、 Checkbalance()にアクセスできるようにしたいとします。 ChildAccount 。また、「あなたは子アカウントを持っています!」というメッセージを印刷したいと思います。ユーザーの残高がコンソールに印刷される前に表示されます。
次のように継承されたメソッドにアクセスできます:
Checkbalance()メソッド ChildAccountクラスの新しいバージョンを宣言しました。この最初のバージョンは次のように表示されます。コンソールに「子アカウントがあります!」なので、 super()コードはマザークラスのCheckbalance()に使用します。
この場合、 super()の場合。 Checkbalance()が実行され、 CheckingAccount クラスのCheckbalance()関数が実行されます。これにより、コンソールにユーザーの残高が表示されます
次に、Lynnに代わって Checkbalance()メソッドにアクセスしようとします。
コードは次を返します:
lynn.checkBalance()メソッドを呼び出すと、 ChildAccount.checkBalance()メソッドのコードはraceになります、スーパーオブジェクトは CheckingAccount.checkBalance()メソッドのコードを実行します。
super()関数を使用すると、親メソッドを使用できます。子クラスのこれらのメソッドを引き続きオーバーライドできます。
結論
Python super()関数を使用すると、クラスの親からメソッドを継承できます。 super()関数は、既存の関数のコードを再利用できるため、より読みやすいコードを作成するのに役立ちます。
このチュートリアルでは、例を使用して、 super()関数の使用方法について説明しました。 。親クラスから値とメソッドを継承します。これで、Pythonプロのようなsuper()関数の使用を開始するための知識を身に付けることができます。
Pythonプログラミングの詳細については、Python学習ガイド。