我有以下情况:
class Baseclass(object):
extra_fields = []
@classmethod
def extend(cls, key):
cls.extra_fields.append(key)
class A(Baseclass):
pass
class B(Baseclass):
pass
A.extend("foo")
现在,extend
ofBaseclass
将被调用,设置Baseclass.extra_fields
为["foo"]
. 然后,A.extra_fields
将是["foo"]
,然而,将是B.extra_fields
。
有没有办法extend
只修改调用它的子类(而不定义extend
所有子类,因为这些子类可能事先不知道)?