在 Python 3.6+ 的抽象类中,我试图定义一个派生自其他(抽象)类属性的类属性。
我尝试过的:
from abc import abstractmethod
class AbstractAnimal:
@classmethod
@property
@abstractmethod
def front_limbs(cls):
raise NotImplementedError
@classmethod
@property
@abstractmethod
def back_limbs(cls):
raise NotImplementedError
@classmethod
@property
def limbs(cls):
return [cls.front_limbs, cls.back_limbs]
class Monkey(AbstractAnimal):
front_limbs = 'arms'
back_limbs = 'legs'
print(Monkey.front_limbs)
print(Monkey.back_limbs)
print(Monkey.limbs)
我期望/渴望:
arms
legs
[arms, legs]
我明白了:
arms
legs
<bound method ? of <class '__main__.Monkey'>>
我尝试查看以前的问题,因为这感觉很基本,但他们都没有讨论派生类属性(例如,this one 帮助我从抽象属性开始)。