Python 中是否有类似于 C++ 中的结构的数据类型?我喜欢结构功能 myStruct.someName
。我知道类有这个,但我不想每次我需要一个“容器”来存放一些数据时都写一个类。
原文由 Aufwind 发布,翻译遵循 CC BY-SA 4.0 许可协议
dataclass
现在是 Python 3.7 中内置的!
from dataclasses import dataclass
@dataclass
class EZClass:
name: str='default'
qty: int
测试:
classy = EZClass('cars', 3)
print(classy)
输出:
EZClass(name='cars', qty=3)
除了自动初始化和 __repr__
它生成的方法外,它还自动创建一个 __eq__
方法,以简单直观地比较类的两个实例。
见 PEP 557 。
使用 dataclasses 包 向后移植到 Python 3.6。
原文由 ChaimG 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答2k 阅读✓ 已解决
4 回答4.4k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
为什么不?上课很好。
如果你想节省一些内存,你可能还想使用
__slots__
所以对象没有__dict__
。有关 slots 的详细信息和用法, 请参阅 http://docs.python.org/reference/datamodel.html#slots ?一些有用的信息。例如,一个只包含两个值的类(
a
和b
)可能如下所示:If you actually want a dict but with
obj.item
access instead ofobj['item']
, you could subclass dict and implement__getattr__
and__setattr__
to behave like__getitem__
和__setitem__
。