もう少し絞りたいときに、二次的classを設けて
大くくりのほうの決まりごとを引き継ぎつつ
やれる、という学習をしました。
大くくりのclass名を、引数にして、
class を設ければいいだけの話で、すぐ腑に落ちました。
課題 クラス Person を継承してクラス BaseBall_Player を
作りましょう。BaseBall_Player 特有の変数としてプレーする
ポジションを表す position を作成し、また同時に
そのポジションを返すメソッド get_position を実装しましょう。
#!/usr/bin/env python3
class Person:
def __init__(self, nm):
self.name = nm
def set_birthyear(self, birthy):
self.birthyear = birthy
def show_name(self):
print(self.name)
def show_birthyear(self):
print(self.birthyear)
class BaseBall_Player(Person):
def set_position_name(self, po):
self.position = po
def get_position_name(self):
return self.position
player1 = BaseBall_Player("Shigeo Nagashima")
player1.show_name()
player1.set_position_name("third")
print(player1.get_position_name())
下のclass以下が二次classで、名前に関しては、
大くくりのほうで設定があるので、
player1のときの名前は、
こんな書き方で済ませられるようです。
positionは、説明に使われていたコードに、
returnで返すようになっていたので、倣いました。
returnで返したときの出力は
print関数でするってことですね。
誕生年も出力するんだったら、
player1.set_birthyear(1936)
player1.show_birthyear()
の追記ですね。
しっかし、基本の勉強というのは、有り難みが
どこにあるのか、解りにくいですね。
昭和天皇は、数え切れないぐらい大相撲をご覧に
なりました。野球は、戦前から日本にあったけど、
敵国生まれのスポーツであるせいか、
長嶋がサヨナラホームランを打った一試合だけ
ご覧になったように思います。
野球は観客が多すぎて、警備のしにくさは
あったと思いますけど。