qq_28194939 2016-01-30 05:36 采纳率: 0%
浏览 5067

关于python元类遇到的问题(TypeError: metaclass conflict)?

from abc import ABCMeta
class test1(object):
metaclass = ABCMeta
def test1(self):
print 'test1'

class UpperAttrMetaclass(type):
def new(cls, name, bases, dct={}):
a = super(UpperAttrMetaclass, cls).__new__(cls, name, l, dct)
return a

b = UpperAttrMetaclass('hehe',(test1,),{})(3)
会报错如下:TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases
如果将test1中的__metaclass__ = ABCMeta去掉就能运行。但是如果不去掉如何
解决呢?(因为需要在程序运行时动态创建新类,继承类的种类和数量都是临时决定的)

  • 写回答

1条回答 默认 最新

  • devmiao 2016-01-30 23:07
    关注
    评论

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?