why class creation throws error
Just playin around class
def func(*args, **kwargs):
print args, kwargs
class Klass(func): pass
it throws开发者_如何学C error
TypeError: Error when calling the metaclass bases function() argument 1 must be code, not str
What does it mean, i am passing no str nowhere? and yes I should be passing class in bases but why didn't error say that, instead of this cryptic error?
see here for the reason for the cryptic msg
http://bugs.python.org/issue6829
questions Error when calling the metaclass bases: function() argument 1 must be code, not str has same problem.
Edit: play-around
Though you can use metaclass to make it work in a twisted way ;)
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
精彩评论