{2}我终于放弃了对Python的支持。在
假设我有一个冻结的散列类MyClass
,其中一个字段my_field
,类型为tuple
。在
多亏了attrs
转换器,我能够提供一个灵活的API,客户机能够用各种类型的my_field
实例化,比如list
、set
或{tuple
。在
我可以用dataclasses
保存这个API吗?在
根据要求,一个小代码示例:
@attr.s(frozen=True, hash=True)
class MyClass:
my_field = attr.ib(default=tuple(), converter=tuple)
print(MyClass([1, 2, 3]))
不,转换器是数据类PEP选择不实现的一个简单的东西。http://www.attrs.org/en/stable/why.html#data-classes还提到了一些。在
DCs严格地说是
attrs
的一个子集,它不太可能改变。在在post_init步骤中通过基类设置属性值似乎有效:
Mixin实现:
^{pr2}$相关问题 更多 >
编程相关推荐