Pythonでのsuper関数の使い方はどうですか?
Pythonでは、super()関数は親クラスのメソッドを呼び出すために使用されます。これにより、子クラスのメソッドで親クラスの同じ名前のメソッドを呼び出して、メソッドのオーバーライドや拡張を実現することができます。super()関数は、子クラスのクラス名と子クラスのオブジェクトを引数として受け取ります。その使用形式は以下の通りです:
super(子类类名, 子类对象)
例えば、サブクラスのメソッド内でsuper()関数を使用すると、親クラスの同名メソッドを呼び出し、必要な引数を渡すことができます。
class ParentClass:
def __init__(self, name):
self.name = name
def say_hello(self):
print("Hello,", self.name)
class ChildClass(ParentClass):
def __init__(self, name, age):
super().__init__(name)
self.age = age
def say_hello(self):
super().say_hello()
print("I'm", self.age, "years old")
child = ChildClass("Alice", 10)
child.say_hello()
結果は出力されます。
Hello, Alice
I'm 10 years old
上記の例では、ChildClassはParentClassを継承し、say_helloメソッドを上書きしています。ChildClassの__init__メソッドでは、super().__init__(name)を使用して親クラスの__init__メソッドを呼び出し、サブクラスオブジェクトの初期化を確実にします。ChildClassのsay_helloメソッドでは、super().say_hello()を使用して親クラスのsay_helloメソッドを呼び出し、その後独自のロジックを追加します。これにより、サブクラスオブジェクトがsay_helloメソッドを呼び出すと、親クラスのメソッドとサブクラスのメソッドの両方が実行されます。