我不明白为什么以下代码会以特定的方式运行,具体情况如下:
from abc import ABCMeta
class PackageClass(object):
__metaclass__ = ABCMeta
class MyClass1(PackageClass):
pass
MyClass2 = type('MyClass2', (PackageClass, ), {})
print MyClass1
print MyClass2
>>> <class '__main__.MyClass1'>
>>> <class 'abc.MyClass2'>
为什么repr(MyClass2)
显示为abc.MyClass2
(而事实并非如此)?
<class '__main__.MyClass2'>
。 - phihagclass PackageClass(metaclass = ABCMeta): pass
? - mgilsontype('bar', (ABCMeta('foo', (object,), {}),), {})
。这段代码会创建一个名为“bar”的类,并将其指定为一个由名为“foo”的抽象基类派生而来的类。 - nneonneo