Head Frist Python 读书笔记 第六章 定制数据对象

Bullet Points:

  • 定义Class

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)

与其他语言的继承类似,只是语法不太一样,在构造函数中,也需要调用被继承类的构造函数

 

posted on 2015-11-22 21:11  Lv Jianwei  阅读(297)  评论(0编辑  收藏  举报