Pythonでのメソッドのオーバーライド:それは何ですか、それを行う方法は?
公開: 2021-09-28Pythonは、コンピュータープログラミング愛好家にとって必見の高レベルの汎用言語です。 JAVA、C ++、Golang、Rubyなどの他の広く使用されているコンピュータ言語と同様です。Pythonもオブジェクト指向プログラミング言語であり、コーディングはクラスとオブジェクトに依存しています。 この概念により、開発者は、個々のオブジェクトを示す単純で再利用可能なコードを構造化できます。 OOP言語が提供するいくつかの便利な機能があります。そのうちの1つはメソッドのオーバーライドです。
この記事では、Pythonでメソッドをオーバーライドする方法を探るために、継承の概念を理解します。 クラスとは何かを理解することから始めましょう。
目次
クラスとは何ですか?
クラスは、オブジェクト指向プログラミングパラダイムの機能またはインスタンスです。 これは、プログラム内の拡張プログラムコーディングテンプレートです。 クラスは、プログラマーが作成時に各オブジェクト(配列、文字列、変数など)の初期データを入力するのに役立ちます。 また、クラスの特性を定義し、データの処理方法や入力の提供方法を決定することもできます。 プログラム内の定義された親クラスまたはスーパークラスの下にサブクラスまたは子クラスがあります。
継承とは何ですか? その利点は何ですか?
オブジェクト指向プログラミングの継承は、クラスの機能を他のクラスまたはサブクラスに継承できるようにするプロパティです。 これにより、データの冗長性を防ぎ、プログラムをより適切にコンパイルし、ミスを犯す範囲を制限できます。
他のクラスから機能を派生または継承するクラスのこの機能は、継承と呼ばれます。 サブクラスを派生させるために特性とプロパティが使用されるクラスは、親クラスと呼ばれます。
継承の利点は次のとおりです。
- 継承により、ユーザーはリアルタイムの関係をうまく表現できます。
- コードを再利用できます。 また、プログラマーはクラスにより多くの特性を提供できます。
- 移行が可能です。 クラスQがクラスWから機能を派生するとすると、QのサブクラスはクラスWから自動的に継承されます。
継承の種類
継承には次の3種類があります。
1.単一の継承
単一継承では、派生クラスは単一の親クラスから機能を継承できます。 これにより、コードを再利用したり、新しい機能を追加したりできます。
2.多重継承
これは、複数の親クラスの特性をサブクラスに転送することを指します。 ここで、基本クラスの機能は自動的にサブクラスに継承されます。
3.マルチレベル継承
親クラスとサブクラスの機能がさらに別の派生クラスに継承される場合、それはマルチレベル継承と呼ばれます。
Pythonでのメソッドオーバーライドとは何ですか?
メソッドのオーバーライドは、オブジェクト指向プログラミング言語の機能であり、サブクラスまたは子クラスは、親クラスまたはスーパークラスですでに定義されているデータの特定の特性または特定の実装プロセスをプログラムに提供できます。
親クラスと同じリターン、パラメーター、または名前がサブクラスに入力された場合、サブクラスの実装メソッドは、親クラスで説明されているメソッドをオーバーライドします。 これは、メソッドのオーバーライドとして知られています。
その実行は、メソッドを呼び出すために使用されるデータに依存し、親クラスですでに提供されている参照データには依存しません。 親クラスのオブジェクトを使用して、プログラムに固有の実装メソッドを呼び出すと、親クラスに記述されているバージョンのメソッドが呼び出されます。 一方、サブクラスのオブジェクトを使用してメソッドを呼び出す場合、実行はサブクラスに記載されている機能に従って行われます。 初心者でデータサイエンスの専門知識を習得したい場合は、データサイエンスコースをご覧ください。
メソッドオーバーライドの機能
このセクションでは、Pythonでメソッドをオーバーライドすることで提供される顕著な機能について説明します。
- メソッドのオーバーライドにより、同じ名前またはシグネチャを持つPythonの関数とメソッドを使用できます。
- メソッドのオーバーロードは、実行時のポリモーフィズムの例です。
- メソッドのオーバーライドでは、継承の機能を使用することが常に必要です。
- メソッドのオーバーロードは、親クラスと子クラスの間で実行されます。
- これは、既存のメソッドの動作と実装を変更するために使用されます。
- メソッドのオーバーライドには、常に最低2つのクラスが必要です。
メソッドのオーバーライドを理解する:複数およびマルチレベルの継承
マルチレベルおよびマルチレベルの継承は、ほとんどのオブジェクト指向プログラミング言語によって提供される2種類の継承です。 このセクションでは、メソッドのオーバーライドがさまざまなマルチレベルの継承でどのように使用されるかを確認します。
1.多重継承
この種のクラスまたはオブジェクトの継承では、サブクラスは複数の親クラスまたはベースの機能と特性を継承します。 たとえば、class.1、class.2、class.3の3つの異なる親クラスがあり、複数の継承の機能を実行する子クラスであるclass.aがあります。 class.aには、3つの基本クラスすべてから継承された機能が含まれます。
サンプルプログラムは次のとおりです。
#親クラスの定義1
クラスParent1():
#親のshowメソッド
def show(self):
print(“ Inside Parent1”)
#親クラス2の定義
クラスParent2():
#親のshowメソッド
def display(self):
print( "Inside Parent2")
#子クラスの定義
クラスChild(Parent1、Parent2):
#子供のショーメソッド
def show(self):
print(“ Inside Child”)
#ドライバーのコード
obj = Child()
obj.show()
obj.display()
出力:
子供の中
Parent2の内部
2.マルチレベルの継承
この種のクラスまたはオブジェクトの継承では、サブクラスは基本クラスから直接継承され、すでに親クラスの特性を備えています。 それは基本的に父と息子または祖父と孫の関係のようなものです。 サブクラスの機能は、その親クラスに固有です。 たとえば、class.Qという名前の親クラスがあり、class.Qの拡張でサブクラスが形成されます。 ここで、サブクラスは別のサブクラスの基本クラスとして機能できます。
サンプルプログラムは次のとおりです。
クラスParent():
def display(self):
print(“ Inside Parent”)
クラスChild(Parent):
#子供のショーメソッド
def show(self):
print(“ Inside Child”)
クラスGrandChild(子):
#子供のショーメソッド
def show(self):
print(“ Inside GrandChild”)
#ドライバーコード
g = GrandChild()
g.show()
g.display()
出力:
孫の中
親の内側
オーバーライドされたメソッド内での基本クラスメソッドの呼び出し
オーバーライドされたメソッドの間に親クラスのメソッドを呼び出すことができるメソッドがあります。 これは、次のプロセスを使用して実行できます。
クラス名の使用
サブクラスのオーバーライドされたメソッドにクラス名メソッドを書き込むと、親クラスで提供されるメソッドを呼び出すことができます。
super()の関数を使用する
Pythonのプログラミング言語は、特に親クラスを参照するために使用されるsuper()と呼ばれる関数を提供します。
結論
メソッドのオーバーライドは、Python言語の最も重要な機能の1つです。 このプロパティは、データサイエンスアプリケーションのプログラミングで広く使用されており、コンパクトで効率的なデータ分析を可能にします。 メソッドのオーバーライドにより、コードのコンパイルと再チェックも簡単になります。 この機能を使用するには、いくつかの前提条件があります。クラスと継承の基本的な概念を理解することです。
Pythonでのメソッドのオーバーライドについて詳しく知りたい場合は、18か月のデータサイエンスの理学修士を取得することをお勧めします。 upGradは、IIITバンガロアとリバプールジョンムーア大学からこのコースを提供しています。 このコースでは、統計、Pythonを使用した予測分析、機械学習、データ視覚化、ビッグデータ分析などのスキルを学びます。 Pythonの概念に精通している学生は、ディープラーニング、自然言語処理、ビジネス分析、データエンジニアリングなどの科目に取り組むのに適しています。
今日私たちに連絡して、学習の旅を始めましょう!
オーバーライドとオーバーロードを区別します。
オーバーライドとオーバーロードの主な違いは、オーバーライドは同じメソッドまたは同じシグニチャ間で発生するのに対し、オーバーロードは同じクラスメソッド間で発生することです。
1.メソッドのオーバーロードはコンパイル時のポリモーフィズムを例示し、メソッドのオーバーライドは実行時のポリモーフィズムを例示します。
2. Pythonではメソッドのオーバーロードを実行できませんが、特定の条件下ではメソッドのオーバーライドを実行できます。
メソッドオーバーライドの機能は何ですか?
メソッドのオーバーライドの機能は次のとおりです。
1.ランタイムポリモーフィズムを例示します。
2.親クラスと子クラスの間にリンクを確立します。
3.少なくとも1つのクラスを接続するため、継承の機能を使用する必要があります。
4.メソッドのオーバーライドは、複数の関数に単一の名前を使用するのに役立ちます。
メソッドのオーバーライドを使用して、派生クラスの親クラスのメソッドを実装します。
継承の種類は何ですか? Pythonでプライベートメソッドをオーバーライドすることは可能ですか?
主に、メソッドのオーバーライドはマルチレベルおよび多重継承を使用します。
マルチレベル継承では、サブクラスは親クラスの特性で構成される基本クラスから継承されます。 ただし、多重継承の場合、サブクラスは複数の親クラスまたはベースの特性を示します。
プライベートメソッドのオーバーライドはJavaでは発生しませんが、Pythonでは「名前マングリング」と呼ばれるプロセスを使用して実行できます。