Python の子クラスで親クラスのメソッドを呼び出す方法
オブジェクト指向プログラミングでは、通常、派生クラスはそのメソッドで定義されたメソッドにアクセスする必要があります。親クラス。これは、複雑なクラス階層を作成するときに発生する一般的なシナリオです。ただし、Python の命名規則は、Perl や Java などの他の言語から来た開発者にとっていくつかの疑問を引き起こす可能性があります。
Perl の "SUPER" や Java の "super" キーワードとは異なり、Python は親メソッドを呼び出す事前定義された手段を提供しません。 。代わりに、メソッドを呼び出すときに親クラス名を明示的に指定する必要があります。これにより、継承されたメソッドの系統を追跡することが複雑になり、深いクラス階層を維持する際に課題が生じる可能性があります。
この制限を克服し、親メソッドをシームレスに呼び出すために、Python には super() 関数が用意されています。このユーティリティを使用すると、名前を明示的に参照せずに、親クラスからメソッドを呼び出すことができます。簡単な例で super() の使用方法を調べてみましょう:
class Foo(Bar): def baz(self, **kwargs): return super().baz(**kwargs)
このコードでは、Foo クラスが Bar から継承し、baz() メソッドを定義します。 Foo の baz() メソッド内で、super().baz(**kwargs) を使用して Bar から baz() メソッドを呼び出すことができます。
3 より前の Python バージョンを使用している場合は、新しいスタイルのクラスの使用を明示的に有効にし、次のようにコードを記述する必要があります:
class Foo(Bar): def baz(self, arg): return super(Foo, self).baz(arg)
このように super() を利用することで、簡単にクラス階層の深さに関係なく、親メソッドを呼び出します。これにより、コードがクリーンで保守しやすくなり、メソッドにアクセスするときに親クラスに明示的に名前を付ける必要が軽減されます。
以上がPython の子クラスで親クラスのメソッドを呼び出すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。