Python での親クラス メソッドの呼び出し
Python の継承メカニズムにより、派生クラスは基本クラスのメソッドにアクセスできますが、Perl や Java とは異なり、 「スーパー」のようなキーワードを指定しないでください。代わりに、親クラスを明示的に参照する必要があります。
例:
Bar クラスが Foo クラスを拡張する次の例を考えてみましょう:
class Foo: def frotz(self): return "Bamf" class Bar(Foo): def frotz(self): # Attempt to explicitly call the parent class 'frotz' method return Foo.frotz(self)
このアプローチでは親クラスを明示的に指定する必要があるため、深い用途には不便ですhierarchies.
解決策: 'super()' 関数の使用
Python 2.2 以降では、より洗練されたソリューションを提供する super() 関数が導入されました。
class Bar(Foo): def frotz(self): # Now calling 'frotz' using the 'super()' function return super().frotz()
super() 関数は、派生クラスのコンテキストに基づいて、継承する親クラスをインテリジェントに決定します。これにより、親クラスを明示的に指定する必要がなくなります。
Python の場合 3:
ただし、Python バージョン 3 より前の場合は、新しいスタイルのクラスの使用を明示的にオプトインする必要があります。class Foo(object): def baz(self): pass class Bar(Foo): def baz(self, arg): return super(Bar, self).baz(arg) # Explicitly specifying 'Bar' as parentオブジェクトの基本クラスは、新しいスタイルのクラスを有効にするために使用されます。 style class syntax.したがって、Python では、「super()」関数を使用して派生クラスから親クラスのメソッドを呼び出すことができます。 (推奨) または親クラスを明示的に参照することによって (Python
以上がPython 継承で親クラスのメソッドを呼び出すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。