我有以下情况:
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")
现在,extendofBaseclass将被调用,设置Baseclass.extra_fields为["foo"]. 然后,A.extra_fields将是["foo"],然而,将是B.extra_fields。
有没有办法extend只修改调用它的子类(而不定义extend所有子类,因为这些子类可能事先不知道)?