Python 数据类与类的深入剖析
1. 数据类基础与注意事项
数据类是 Python 3.7 引入的新特性,使用时有些细节需要注意。比如下面的代码定义了一个汤的食谱数据类:
soup = Recipe(
aromatics=set(),
broth=Broth.CHICKEN,
vegetables=set(),
meats=set(),
starches=set(),
garnishes=set(),
time_to_cook=datetime.timedelta(seconds=3600)
)
如果希望类型检查器在变量被重新赋值时报错,可以将变量标注为 Final 。另外,冻结数据类(frozen dataclass)只能防止其成员被直接赋值,但如果成员是可变的,仍然可以调用成员的方法来修改其值。例如:
soup.aromatics.add(Ingredient("Garlic"))
这段代码虽然修改了冻结数据类的 aromatics 字段,但不会报错。为避免这种情况,使用冻结数据类时应让成员为不可变类型,如整数、字符串或其他冻结数据类。
2. 数据类与其他类型的比较
2.1 数据类与字典
字典在映射键值对方面很出色,但更适合处理同质数据(所有键和值类型相同)。处理异质数据时,字典让人难以理解,类
超级会员免费看
订阅专栏 解锁全文
1527

被折叠的 条评论
为什么被折叠?



