TypeError:MetAclassベースを呼び出すときのエラー新しいスタイルのクラスは古典的な基盤だけを持つことができません

StackOverflow https://stackoverflow.com//questions/9677163

質問

クラスのコレクション:

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と至る所に見続けています。なぜ、なぜ?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top