2022年03月25日

classには、二次的classを設けられるとか。python日記-36

大くくりのclassを設けたら、大きすぎて、
もう少し絞りたいときに、二次的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())

sub_class.jpg

下のclass以下が二次classで、名前に関しては、
大くくりのほうで設定があるので、
player1のときの名前は、
こんな書き方で済ませられるようです。
positionは、説明に使われていたコードに、
returnで返すようになっていたので、倣いました。
returnで返したときの出力は
print関数でするってことですね。

誕生年も出力するんだったら、
player1.set_birthyear(1936)
player1.show_birthyear()

の追記ですね。

しっかし、基本の勉強というのは、有り難みが
どこにあるのか、解りにくいですね。

昭和天皇は、数え切れないぐらい大相撲をご覧に
なりました。野球は、戦前から日本にあったけど、
敵国生まれのスポーツであるせいか、
長嶋がサヨナラホームランを打った一試合だけ
ご覧になったように思います。
野球は観客が多すぎて、警備のしにくさは
あったと思いますけど。


posted by ブログ開設者 at 23:45| Comment(0) | linux | このブログの読者になる | 更新情報をチェックする