Head Frist Python読書ノート第六章カスタムデータオブジェクト

1753 ワード

Bullet Points:
  • 定義クラス
  • pythonの中のclassとJavaScriptの中の類似しています(後悔してJSをよく見ていません)、原則はただ一つの「方法は共有で、属性は共有しません」です.
    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)
    他の言語の継承と似ていますが、文法が違っています.構造関数では、継承されたクラスの構造関数を呼び出す必要があります.