类定义之后的类型问题

类定义之后的类型问题

#第一种:
class Foo:
    pass

#第二种:
class Bar(object):
    pass

#运行的结果是:
type(Foo)
<type 'classobj'>

type(Bar)
<type 'type'>

f = Foo()
b = Bar()
type(f),type(b)
(<type 'instance'>, <class '__main__.Bar'>)


谁能解释一下
Foo就是类了,type之后是classobj,是自己定义的类,type(Foo)==types.ClassType,返回是True。
而Bar是继承object,object其实真正类型是TypeType,type(object)==types.TypeType。

所以这里的object可以理解为是个表示类型的类。Bar则是个继承object的类。

下面的type(f)这个可以理解为类的实例定义instance。而type(b)为什么显示class '__main__.Bar'我也不是很明白了。应该查查文档或源码怎么定义object了。

呵呵。个人简介,期待高手释疑。
楼上说的很清楚啦
还是不是很明白
dd
别研究了,都用后者就行了。3.0后所有的类都是new style class了。