現在、pythonを勉強していますがとあるサイトリンク内容で以下のコードを見つけたのですが
return cls(friend_name, origin.school, *args)と
mitsu = WorkingStudent.friend(hiro, "Mitsu", 15.00)のコードが一体何をしているのかわかりません。
ご教授お願い致します。
※コードとコメントは引用です。
Python3
1class Student: 2 def __init__(self, name, school): 3 self.name = name 4 self.school = school 5 self.marks = [] 6 7 def average(self): 8 """平均成績を返す 9 10 インスタンス変数にアクセスしたいのでinstancemethodを使う。 11 """ 12 return sum(self.marks) / len(self.marks) 13 14 @classmethod 15 def friend(cls, origin, friend_name, *args): 16 """同じ学校の友達を追加する。 17 18 継承クラスで動作が変わるべき(継承クラスでは salaryプロパティがある) 19 なのでclassmethodを使う。 20 子クラスの初期化引数は *argsで受けるのがいい 21 """ 22 return cls(friend_name, origin.school, *args) 23 24 @staticmethod 25 def say_hello(): 26 """先生に挨拶する 27 28 継承しても同じ動きでいいのでstaticmethodを使う 29 """ 30 print("Hello Teacher!") 31 32class WorkingStudent(Student): 33 def __init__(self, name, school, salary): 34 super().__init__(name, school) 35 self.salary = salary 36 37hiro = WorkingStudent("Hiro", "Stanford", 20.00) 38mitsu = WorkingStudent.friend(hiro, "Mitsu", 15.00) 39print(mitsu.salary)
回答2件
あなたの回答
tips
プレビュー