我对Python中的类型和类有点困惑。对于例如以下REPL谈话让我困惑:Python中的类型和类
>>> class A: pass
...
>>> a = A()
>>> type(a)
<type 'instance'>
>>> a.__class__
<class __main__.A at 0xb770756c>
>>> type([])
<type 'list'>
>>> [].__class__
<type 'list'>
>>> type(list)
<type 'type'>
>>> list.__class__
<type 'type'>
>>> type(A)
<type 'classobj'>
>>> A.__class__
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: class A has no attribute '__class__'
- 为什么是内在的东西的类型和种类(例如在此列出)相同,但对于用户类/类型的不同?
- 是不是每个类都是某个其他类的实例(如Java中的Class)?为什么没有
__class__
用户定义类?
任何解释/进一步阅读可以澄清这种行为将不胜感激。 TIA。
你应该用'class A(object)'定义你的类。然后你会得到''。 –
2010-12-18 19:50:33