pau*_*uap 4 python metaclass python-2.7
我有以下Python代码:
class MetaData(object):
_md = {}
class _ClassMeta(type):
def __new__(cls, clsname, bases, dct):
ncls = super(_ClassMeta, cls).__new__(cls, clsname, bases, dct)
MetaData._md[clsname] = ncls
class Meta(object):
__metaclass__ = _ClassMeta
class Test(Meta):
pass
Run Code Online (Sandbox Code Playgroud)
当我尝试执行它时,我得到了这个:
TypeError: Error when calling the metaclass bases
cannot create 'NoneType' instances
Run Code Online (Sandbox Code Playgroud)
在线,class Test(Meta):
我不明白为什么.__new__
对于Meta类,元类的功能显然被称为精细,但不适用于派生的Test类.
对于那些问"为什么"的人 - 我正在探索运行时类注册和修改像Django和SqlAlchemy这样的ORM框架.这可能不是我最终会生成我的代码的方式,但我仍然想知道为什么我会收到TypeError异常.
归档时间: |
|
查看次数: |
1684 次 |
最近记录: |