Как предоставить значения по умолчанию для изменяемых атрибутов, используя атрибуты python? - PullRequest
0 голосов
/ 05 ноября 2018

Только что начал использовать 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]
...