TypeError:MetAclassベースを呼び出すときのエラー新しいスタイルのクラスは古典的な基盤だけを持つことができません
-
12-12-2019 - |
質問
クラスのコレクション:
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の既知の文字列表現を持つメタクラス(私は思う)が必要です。それを持っている理由はポイントのそばにありますが、それは将来の更新に大きな役立ちます。
だから私はBとBのメタクラスであることを必要とすると、Bのサブクラスになります。
解決
問題は行
ですclass A():
.
それは次のようになるべきです:
class A(object):
.
そのように、あなたは新しいスタイルクラスを作ります。空にしているのは、何を意味していない、そしてそれでも、私はそれらをStackOverflowと至る所に見続けています。なぜ、なぜ?
所属していません StackOverflow