# 这段代码引起了一个NoneType的错误,没有search到解决办法。
class PeoplemataClass(type): def __new__(cls, *args, **kwargs): print(cls) print(*args) print(**kwargs) class man(dict, metaclass=PeoplemataClass): def __init__(self): super(man, self).__init__() class boy(man): def __init__(self): super(boy, self).__init__()
原因:元类PeoplemetaClass动态构造类的new函数里面没有return返回类对象。
解决办法:
class PeoplemataClass(type): def __new__(cls, *args, **kwargs): print(cls) print(*args) print(**kwargs) return type.__new__(cls, *args, **kwargs) class man(dict, metaclass=PeoplemataClass): def __init__(self): super(man, self).__init__() class liman(man): def __init__(self): super(liman, self).__init__()