在定义的时候初始化类的成员-华为云大数据中台架构分享

时间:2024-07-01 05:00:47
【文件属性】:

文件名称:在定义的时候初始化类的成员-华为云大数据中台架构分享

文件大小:5.68MB

文件格式:PDF

更新时间:2024-07-01 05:00:47

Python cookbook 中文 参考

9.19 在定义的时候初始化类的成员 问题 你想在类被定义的时候就初始化一部分类的成员,而不是要等到实例被创建 后。 解决方案 在类定义时就执行初始化或设置操作是元类的一个典型应用场景。本质上讲, 一个元类会在定义时被触发, 这时候你可以执行一些额外的操作。 下面是一个例子,利用这个思路来创建类似于 collections 模块中的命名元组的 类: import operator class StructTupleMeta(type): def __init__(cls, *args, **kwargs): super().__init__(*args, **kwargs) for n, name in enumerate(cls._fields): setattr(cls, name, property(operator.itemgetter(n))) class StructTuple(tuple, metaclass=StructTupleMeta): _fields = [] def __new__(cls, *args):


网友评论