2

刚开始用python attr,看起来不错。该包允许通过使用工厂创建新对象来轻松创建空的可变参数,但我不清楚使用默认值填充这些空对象的预期方法。例如,这可以创建一个具有默认值的新列表,但默认值会在方法调用中丢失:

import attr; import typing

@attr.s(auto_attribs=True)
class C:
    x: int=66
    # I want loi as a list with default value [1,2,3]
    loi: typing.List[int] = attr.Factory(list)

    def __attrs_post_init__(self):
        self.loi.extend([1,2,3])

cx = C()
cx.loi = [1,2,3]
4

0 回答 0