Pythonはポリモーフィズムをサポートしていますか?
はい 、Pythonはポリモーフィズムをサポートします。
ポリモーフィズムという言葉は、多くの形を持っていることを意味します。
ポリモーフィズム これはPythonのクラス定義の重要な機能であり、クラス間またはサブクラス間でメソッドに共通の名前を付ける場合に使用されます。
ポリモーフィズムは、サブクラスが基本クラスのメソッドを使用するか、それらをオーバーライドすることで、継承を通じて実行できます。
ポリモーフィズムには2つのタイプがあります
- オーバーロード
- オーバーライド
オーバーロード :オーバーロードは、1つのクラスの2つ以上のメソッドのメソッド名が同じで、パラメーターが異なる場合に発生します。
オーバーライド :オーバーライドとは、同じメソッド名とパラメーター(つまり、メソッドシグネチャ)を持つ2つのメソッドを持つことを意味します。メソッドの1つは親クラスにあり、もう1つは子クラスにあります。
例
class Fish(): def swim(self): print("The Fish is swimming.") def swim_backwards(self): print("The Fish can swim backwards, but can sink backwards.") def skeleton(self): print("The fish's skeleton is made of cartilage.") class Clownfish(): def swim(self): print("The clownfish is swimming.") def swim_backwards(self): print("The clownfish can swim backwards.") def skeleton(self): print("The clownfish's skeleton is made of bone.") a = Fish() a.skeleton() b = Clownfish() b.skeleton()
python polymorphism.pyコマンドを使用してプログラムを実行すると、期待される出力が得られます-
出力
The fish's skeleton is made of cartilage. The clownfish's skeleton is made of bone.
-
Pythonのclassmethod()
クラスメソッドは、最初の引数としてクラス自体を受け取ります。このようにして、最初にクラスからインスタンスを作成しなくても、クラス内でメソッドを呼び出すことができます。クラスに含まれるメソッドを宣言する前にデコレータ@classmethodを使用するだけで、メソッドに直接アクセスできます。以下はclassmethidsの主な機能です。 classmethodはクラスにバインドされており、使用するクラスのインスタンス化に依存しません。 classmethodはクラスを変更でき、クラスはクラスのすべてのインスタンスに伝播します。 クラスメソッドの使用 次の例では、WeekDayとい
-
Pythonでの継承
この記事では、Python3.xでの継承と拡張クラスについて学習します。またはそれ以前。 継承は実際の関係をうまく表し、再利用性を提供し、推移性をサポートします。開発時間が短縮され、メンテナンスが容易になり、拡張も容易になります。 継承は大きく5つのタイプに分類されます- シングル 複数 階層的 マルチレベル ハイブリッド 上の図に示されているように、継承とは、実際に親クラスのオブジェクトを作成せずに、他のクラスの機能にアクセスしようとするプロセスです。 ここでは、単一の階層型継承の実装について学習します。 単一継承 例 # parent class class Studen