次のシナリオがあります。
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
ますか(事前にわかっていない可能性があるため、すべてのサブクラスを定義する必要はありません)。