《Effective Python》Chapter3总结
Chapter3 的整理细节如下:
Chapter3.类与继承
第22条:尽量用辅助类来维护程序的状态,而不要用字典和元组
要点:
- 不要使用包含其他字典的字典,也不要使用过长的元组。
- 如果容器中包含简单而又不可变的数据,那么可以先使用
namedtuple
来表示,待稍后有需要时,在修改为完整的类。 - 保存内部状态的字典如果变得比较复杂,那就应该把这些代码拆解为多个辅助类。
举个例子:本来记录每次学生考试的成绩的一个简单例子,由于不停地添加需求,比如增加记录此成绩占该科目总成绩的权重,等等,代码膨胀成如下这样:
class WeightedGradebook(object):
def __init__(self):
self._grades = {}
def add_student(self, name):
self._grades[name] = {}
def report_grade(self, name, subject, score, weight):
by_subject = self ...