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

关于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
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题