次のように定義されたクラスのコレクション:
class A():
@staticmethod
def call():
print('a')
class C(type):
def __repr__(self):
return 'somename'
class B(A):
__metaclass__ = C
@staticmethod
def call():
print('b')
def boundcall(self):
print('bound')
実行すると、次のエラーが発生します。
TypeError: Error when calling the metaclass bases
a new-style class can't have only classic bases
コードにBの既知の文字列表現を含めるには、メタクラス(私は思う)が必要です。それを持っている理由は重要ではありませんが、それは将来のアップデートに大いに役立ちます。
したがって、CがBのメタクラスであり、BがAのサブクラスである必要があると仮定すると、ここで何が問題になっているのか、エラーを削除するために何を変更するのかを誰かに教えてもらえますか?