ホームページ  >  記事  >  バックエンド開発  >  Python 継承で親クラスのメソッドを呼び出すにはどうすればよいですか?

Python 継承で親クラスのメソッドを呼び出すにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-27 04:04:10500ブラウズ

How Do I Call Parent Class Methods in Python Inheritance?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。