Language/Python

abstract class에서 abstract property 생성하기

Linuxias 2019. 5. 28. 13:24
반응형

python 3.3 버전 이전까지는 @abstractproperty 라는 annotation이 제공되었습니다.

하지만, python 3.3 버전 이상에서는 사용할 수 없습니다. 만약 사용하게 되면, 아래와 같은 경고 문구가 나타납니다.

'abc.abstractproperty' is deprecated since Python 3.3. Use 'property' with 'abc.abstractmethod' instead. less... (Ctrl+F1) 
Inspection info: This inspection highlights usages of Python functions, classes or methods which are marked as deprecated (which raise a DeprecationWarning or a PendingDeprecationWarning).

자세한 내용은 아래 링크를 참조해주세요.

https://docs.python.org/3/library/abc.html#abc.abstractproperty

그럼 abstract class에서 abstract property를 사용하기 위해선 어떻게 해야할까요?

@property와 @abstractmethod annotation을 함께 사용하면 됩니다.

@property

@abstractmethod

def your_property(self):

    ....

 

감사합니다.

반응형