나는 상용구 코드없이 간단한 클래스를 정의하기 위해 attrs을 사용하고 있습니다. 데코레이터는 모든 속성의 값을 보여주는 __repr__을 자동으로 생성합니다. 기본 값이없는 애트리뷰트 만 표시하고 싶습니다. >>> import attr
>>> @attr.s
... class Coordinates(object):
... x = attr.ib(def
attr.ib(default=attr.Factory(list))을 사용해야하는시기와 이유는 attr.ib(default=[]) 이상입니까? docs에서 입력 값이있는 람다 식을 사용하는 경우 새 값을 생성하는 데 Factory가 사용됩니다. 그러나 단순히 빈 목록을 생성하는 경우 왜 사용할지 이해할 수 없습니다. 무엇이 여기에 있습니까?
어떻게 아래의 클래스가 사용하는 변환 할 수 attrs library : class MyClass(object):
def __init__(self, api, template=None, **kwargs):
self.api = api
self.param1 = param1
if template is not None:
attrs과 abstract classes을 어떻게 조합 할 수 있는지 궁금합니다. 나는 모든 상속 클래스에 있어야하는 추상 속성을 정의하는 추상 클래스를 정의하고 싶다. 이 상속 클래스에 대해 속성을 정의하려면 attrs를 사용합니다. AttributeError: can't set attribute
아마도 추상적 사용하여 바인드합니다? @attr.s(