为什么类创建会抛出错误

时间:2010-02-22 05:12:08

标签: python class

只是在课堂上玩耍

def func(*args, **kwargs):
    print args, kwargs

class Klass(func): pass

它抛出错误

  

TypeError:调用时出错   元类基础       function()参数1必须是代码,而不是str

这是什么意思,我无处可去? 是的,我应该在基地传递课程,但为什么没有错误说,而不是这个神秘的错误?

1 个答案:

答案 0 :(得分:2)

请看这里隐藏的消息的原因

http://bugs.python.org/issue6829

问题Error when calling the metaclass bases: function() argument 1 must be code, not str也有同样的问题。

修改:游戏

虽然您可以使用元类使其以扭曲的方式工作;)

def func(name, klassDict):
    return type(name, (), klassDict)

class MyMeta(type):
    def __new__(self, name, bases, klassDict):
        return bases[0](name, klassDict)

class Klass(func):
    __metaclass__ = MyMeta

print Klass