我在Python的REPL中尝试了这个:
>>> class Foo:
... def f():{}
...
>>>
>>> type(Foo)
<type 'classobj'>
>>> Foo.__bases__
()
>>> type(type(Foo))
<type 'type'>
>>> type(Foo).__bases__
(<type 'object'>,)
然而,我仍然不确定在面向对象编程中,“数据类型”确切地指的是什么。
在Python中,我知道一个实例可以通过“.__class__”获得其类,而一个类可以通过“.__bases__”获得其父类。这似乎很容易理解。
但是,“类”的“类型”或“TypeObject”的“类型”意味着什么?“Type Object”的“type”又意味着什么?“Type Object”的“__bases__”又意味着什么?在Python中,“type”和“class”的区别是什么?
这对我来说看起来有点混乱.. 有人对此有什么想法吗?
python-3.x
,但它看起来像是python-2.x
- 在Python 3+中,type(Foo)
返回<type' type'>
。 - Holt