只是在课堂上玩耍
def func(*args, **kwargs):
print args, kwargs
class Klass(func): pass
它抛出错误
TypeError:调用时出错 元类基础 function()参数1必须是代码,而不是str
这是什么意思,我无处可去? 是的,我应该在基地传递课程,但为什么没有错误说,而不是这个神秘的错误?
答案 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