【发布时间】:2017-03-03 13:02:17
【问题描述】:
class Choices(object):
__choices = set(["Boss"])
@classmethod
def choices(cls):
return list(cls.__choices)
class ChoicesA(Choices):
__choices = set(['A'])
>> ChoicesA.choices()
>> ['Boss']
但我想要['A']
为什么类方法不使用子类的类属性? 这不是python错误吗?为什么python不使用应用于真实类(子类)的类方法?
你有解决办法吗?谢谢。
【问题讨论】:
-
谢谢。我不想修改父属性,而是修改子属性。但我想在父级中定义一次方法。
-
我找到了解决办法:
class Choices(object): _choices = set(["Boss"]) @classmethod def choices(cls): return list(cls._choices) class ChoicesA(Choices): _choices = set(['A'])
标签: python class methods attributes