开发者

why class creation throws error

开发者 https://www.devze.com 2022-12-21 00:59 出处:网络
Just playin around class def func(*args, **kwargs): print args, kwargs class Klass(func): pass it throws开发者_如何学C 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
0

精彩评论

暂无评论...
验证码 换一张
取 消