用了一段时间的 Python, 觉得还是有必要读一下《流畅的Python》这本书,它虽然是基于 Python 3.4 的,但 Python 自身的很多特性希望了解的更多,更深,或巩固,或扫扫死角。
对于少量属性的对象可以用 collections.namedtuple 快速构建一个类 Card = collections.namedtuple('Card', ['rank', 'suit']), 用 type(Card) 看到的就是一个 class, 第一个参数 Card 是类名,第二个参数列表里是属性名,然后用 card = Card('7', 'diamonds') 创建一个实例。PyCharm 也能正确识别出 Card 构建与使用对象时的属性 rank 和 suit.
现代从 Python 3.7 开始引入了 @dataclasses.dataclass 比 namedtuple 要方便些
@dataclasses.dataclass
class Card:
rank: str
suit: str = None
card = Card(rank='7', suit='diamonds')
或者用 pydantic 的 BaseModel 都比先前的 namedtuple 好用 阅读全文 >>