この記事では、主に Python クラスの継承例に関する関連情報を詳しく紹介しますので、必要な方は参考にしてください
Python クラスの継承について説明する多くの記事では、そのほとんどが について話しています。 oop 、ポリモーフィズム、その他の概念は、特定の基礎を備えた開発者にとってはあまり役に立たないかもしれませんが、特定のコード状況でコードを実行した場合の効果を示すには、さまざまな状況で書かれたコードを直接使用する方がよいでしょう。これは開発者にとってより役立つかもしれません。くだらない話はせずに、コードに直接取り組んでください。
ここでは、クラシック クラスと新しいスタイル クラスの区別はありません。次の分析は、新しいスタイル クラスとクラシック クラスの両方に適用されます。
クラス内の __init__ 関数の場合、それは単に呼び出される関数です。初期化 (ps: 初期化とインスタンスの作成。これはプロセスではありません。インスタンスの作成は create 関数によって完了します)。サブクラス内に __init__ 関数の明示的な宣言がない場合、サブクラスはその __init__ 関数を呼び出します。 __init__ 関数が明示的に宣言されている場合、親クラスの初期化関数は呼び出されず、サブクラスの __init_ のみが呼び出されます。同時に、サブクラスのインスタンスの親クラスの __init__ 関数で宣言された属性はありません。 例:
class animal(): name="hh" sex="man" def __init__(self): self.height=10 self.weight=50 def deception(self): print "ansible.height:"+self.height+" animal.weight:"+self.weight def run(self): print "animal is running...." class dog(animal): def __init__(self): pass if __name__=="__main__": dg=dog() print dg.__dict__
です。
{} Dog クラスを次のように変更すると (追記: この時点では宣言された __init__ メソッドは表示されません):class dog(animal): def run(self): print "dog is running..."
{'weight': 50, 'height': 10}
class animal(): name="hh" sex="" def __init__(self): self.height=10 self.weight=50 def deception(self): print "ansible.height:"+self.height+" animal.weight:"+self.weight def run(self): print "animal is running...." class dog(animal): def __init__(self): pass def run(self): print "dog is running..." class jinmao(dog): # def __init__(self): # self.ji="jinmao" pass if __name__=="__main__": dg=jinmao() print dg.__dict__
サブクラスの親クラスのメソッドを呼び出すための super の使用法と特徴。
Python 仮想マシンがクラスを作成する方法 (具体的には、.pyc ファイルをロードするとき、C 言語のコード ロジックを通じてクラス オブジェクトをメモリに配置する方法) を知りたい場合は、私もこの側面について学んでいるので、一緒に探求できればと思っています)
以上がPythonのクラス継承を例とともに詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。