Python メモ – 継承
Pythonではクラス名の後ろに()
が書いてあることがある。最初にこの記述を見たときは意味がわからず、リファクタリングのときに不要だと思い、削除してエラーになったことがあった。実は、クラス名の後ろに(親クラス)
と記述することでクラスを継承できるということであった。
例えば、次のコードではPersonクラスを、JapaneseクラスとGermanクラスが継承している
# person.py
class Person:
def say_hello(self, name):
print('Hello, ' + name + '!')
class Japanese(Person):
def say_hello(self, name):
print('こんにちは、' + name + 'さん')
class German(Person):
def say_hello(self, name):
print('Hallo, ' + name + '!')
p = Person()
p.say_hello('Mike')
j = Japanese()
j.say_hello('太郎')
g = German()
g.say_hello('Ben')
$ python3 person.py
Hello, Mike!
こんにちは、太郎さん
Hallo, Ben!