1
자식 프로세스가 특정 속성을 갖기를 원하지만 자식 메서드를 속성 데코레이터를 상속 할 수 없으므로 최소한 이러한 특성은 다음과 같습니다. 클래스의 속성. 이 같은Assert 자식 특성은 부모 클래스의 속성입니다.
뭔가 : 시간 Parent.__init__()
에 의해
class Parent:
def __init__(self):
assert isinstance(self.foo, property)
def foo(self):
raise NotImplementedError
class Child(Parent):
def __init__(self):
super().__init__()
@property
def foo(self):
return 'bar'
그러나 물론
이 실행될 때,self.foo
는
'bar'
을하게하고
AssertionError
가있다. 메타 클래스를 사용하여 수행 할 작업을 수행 할 수있는 방법이 있습니까? 그렇다면
Parent
클래스가
Child
이 아닌 메타 클래스를 상속하는 클래스 일 수 있습니까?
https://docs.python.org/3/library/abc.html#abc.abstractproperty를 사용하지 않으시겠습니까? – jonrsharpe
아, 완벽 해요. 제출하고 대답하면 받아 들일 것입니다. – v4gil
사실, 이것은 좋아 보이지만 작동시키지 못합니다. abc.abstractproperty는 더 이상 사용되지 않으며 속성이있는 abstractmethod를 사용한다고 설명합니다. 어느 방향 으로든 오류를 제기 할 수는 없습니다. – v4gil