Python で super() 関数を使用して親クラスのメソッドを呼び出す方法

王林
リリース: 2023-08-22 16:15:55
オリジナル
1108 人が閲覧しました

Python で super() 関数を使用して親クラスのメソッドを呼び出す方法

super() 関数を使用して Python で親クラスのメソッドを呼び出す方法

Python では、親クラスを継承する必要がよくあります。サブクラスが親クラスからの継承に基づいて特別な操作を実行する必要がある場合、親クラスのメソッドを呼び出す必要があります。 Python では、super() 関数を使用してこの目的を達成できます。

super() 関数は、親クラスのメソッドを呼び出すための Python の特別なメソッドです。これにより、親クラスの名前を明示的に指定せずに、サブクラスの super() 関数を通じて親クラスのメソッドを呼び出すことができます。この呼び出しメソッドは、コードの再利用とメンテナンスに役立ちます。

以下では、簡単な例を使用して、super() 関数を使用して親クラスのメソッドを呼び出すプロセスを示します。動物クラス Animal と、Animal クラスを継承する犬クラス Dog があるとします。 Dog クラスが親クラスの Animal のメソッドを呼び出せるようにしたいと考えています。

class Animal:
    def __init__(self, name):
        self.name = name

    def speak(self):
        print("动物发出声音")

class Dog(Animal):
    def __init__(self, name, breed):
        super().__init__(name)
        self.breed = breed

    def speak(self):
        super().speak()
        print("狗叫")

# 创建一个狗的实例
my_dog = Dog("旺财", "哈士奇")
my_dog.speak()
ログイン後にコピー

上記のコードでは、最初に動物クラス Animal を定義します。これには、動物が発する音を出力し、初期化中に動物の名前を保存するための speech() メソッドがあります。

次に、動物クラス Animal を継承する犬クラス Dog を定義します。犬クラスの初期化メソッドでは、super() 関数を使用して親クラスの初期化メソッドを呼び出し、動物の名前を取得して保存します。次に、speak() メソッドを定義しました。このメソッドでは、super().speak() を通じて親動物の speech() メソッドを呼び出し、「犬の鳴き声」を出力しました。

最後に、犬 my_dog のインスタンスを作成し、その speech() メソッドを呼び出します。このコードを実行すると、出力は次のようになります。

动物发出声音
狗叫
ログイン後にコピー

出力からわかるように、my_dog インスタンスは最初に親動物の speech() メソッドを呼び出し、次に「犬の鳴き声」を出力します。これは、 super() 関数を使用して親クラスのメソッドを呼び出すことができたことを示しています。

super() 関数のパラメーターに親クラスの名前を指定する必要はなく、サブクラスのクラス定義に基づいて親クラスが自動的に検索されることに注意してください。これは、解決された順序で各親クラスのメソッドを自動的に呼び出すため、複数の継承の状況で特に役立ちます。

要約すると、super() 関数を使用すると、親クラスのメソッドを簡単に呼び出して、コードの再利用とメンテナンスを実現できます。サブクラスで super() 関数を使用して親クラスのメソッドを呼び出すだけでよく、親クラスの名前を明示的に指定する必要はありません。これは、Python で親クラスから継承する便利な方法であり、複数の継承シナリオに適用できます。

以上がPython で super() 関数を使用して親クラスのメソッドを呼び出す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!