TypeError:调用元类基时出错一个新样式的类不能只有经典基

2024-09-29 01:26:11 发布

您现在位置:Python中文网/ 问答频道 /正文

类的集合,定义为:

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的子类,有人能告诉我这里出了什么问题,我如何改变我正在做的来消除错误吗?


Tags: selfreturn定义deftype错误callclass
1条回答
网友
1楼 · 发布于 2024-09-29 01:26:11

问题是线路

class A():

应该是:

class A(object):

这样,您就可以创建一个新的样式类。空空如也的帕伦斯一点意义都没有,但我还是不断地看到他们在堆积如山,无处不在。为什么,为什么?

相关问题 更多 >