python通过dataclasses模块提供了dataclass(数据类)对象,适合我们想定义一些类,并且让他们主要用于存放数据。
dataclass: 是一个函数,用做装饰器,把一个类变成数据类。 数据类可以让我们通过简单的方法定义实例属性以及对其赋值,并使用类型提示标明其类型。 通过一些元类的定制化,数据类会自动生成__init__
方法,并将类体中定义的属性转变成实例属性。
简单例子如下:
from dataclasses import dataclass
@dataclass
class InventoryItem:
"""Class for keeping track of an item in inventory."""
name: str
unit_price: float
quantity_on_hand: int = 0
def total_cost(self) -> float:
return self.unit_price * self.quantity_on_hand
bread_inv = InventoryItem("面包", 5, 3)
milk_inv = InventoryItem("牛奶", 4, 2)
print(bread_inv)
print('面包 total cost:', bread_inv.total_cost())
print('-' * 25, '分隔线', '-' * 25)
print(milk_inv)
print('牛奶 total cost:', milk_inv.total_cost())
输出结果:
InventoryItem(name='面包', unit_price=5, quantity_on_hand=3)
面包 total cost: 15
------------------------- 分隔线 -------------------------
InventoryItem(name='牛奶', unit_price=4, quantity_on_hand=2)
牛奶 total cost: 8
标签:InventoryItem,dataclasses,inv,cost,模块,print,total,unit
From: https://www.cnblogs.com/rolandhe/p/18643667