翻墙软件推荐:

V2net翻墙软件是我一直在用的,价格很实惠,有各个档次可以选择,翻墙效果还是很好的。

点击查看
目录
首发于:
最近更新于:

dataclasses模块

本文简要介绍了python的内置模块dataclasses, 更多内容请参看 官方文档.

dataclasses主要提供了创建数据类的支持, 这种数据封装对象在某些需要传递特定格式数据包时非常有用.

如下所示:

@dataclass
class InventoryItem:
    '''Class for keeping track of an item in inventory.'''
    name: str
    unit_price: float
    quantity_on_hand: int = 0

其大体帮你实现了类似下面的 __init__ 方法, 还有 __repr__ 和其他方法的自动添加.

def __init__(self, name: str, unit_price: float, quantity_on_hand: int=0):
    self.name = name
    self.unit_price = unit_price
    self.quantity_on_hand = quantity_on_hand

__post_init__ 方法

定义一些初始化 __init__ 方法之后的后处理动作, 这在某些情况下会有用. 比如上面定义默认值对于可变类型列表等是禁止的,这个时候你可以类似下面做:

    def __post_init__(self):
        if self.args is None:
            self.args = list()