用组合类实现多层结构而不用内置类型
例子:成绩单,存储学生各科成绩多个然后加权重,如果用字典类型会导致字典有多层嵌套结构
思想 当用内置类型如字典元组等结构出现超过二层的多层嵌套结构时,读起来会比较难懂,此时建议通过定义一批新类实现一套新体系,这样可以定义良好清晰的接口,并合理封装数据
怎么做 多个属性时,将每个属性定义为实例属性,可以考虑namedtuple(namedtuple无法对属性设定默认值,如果需要可以使用内置的dataclasses模块)
namedtuple局限 1实例属性无法设置默认值 2虽然namedtuple但仍可以通过下标访问实例属性
改前
改后
虽然代码多了,但看的应该更清晰