Head Frist Python読書ノート第六章カスタムデータオブジェクト
1753 ワード
Bullet Points:定義クラス pythonの中のclassとJavaScriptの中の類似しています(後悔してJSをよく見ていません)、原則はただ一つの「方法は共有で、属性は共有しません」です.
2.各方法の最初のパラメータselfは、現在のインスタンスオブジェクトを指します.
pythonはもちろん引き継げます.
class AthleteList:
def __init__(self,a_name,a_dob=None,a_times=[]):
self.name=a_name
self.dob=a_dob
self.times=a_times
def top3(self):
return sorted(set([float(sanitize(item)) for item in self.time]))[0:3]
def add_time(self,time):
self.times.append(time)
def add_times(self,times):
self.times.extend(times)
1.__init_方法は構造関数に相当する.2.各方法の最初のパラメータselfは、現在のインスタンスオブジェクトを指します.
pythonはもちろん引き継げます.
class AthleteList(list):
def __init__(self,a_name,a_dob=None,a_times=[]):
list.__init__([])
self.name=a_name
self.dob=a_dob
self.extend(a_times)
def top3(self):
return sorted(set([float(sanitize(item)) for item in self]))[0:3]
def add_time(self,time):
self.append(time)
def add_times(self,times):
self.extend(times)
他の言語の継承と似ていますが、文法が違っています.構造関数では、継承されたクラスの構造関数を呼び出す必要があります.