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)
与其他语言的继承类似,只是语法不太一样,在构造函数中,也需要调用被继承类的构造函数