如题
>>> class Foo:pass
>>> foo = Foo()
>>> type(Foo)
<type 'classobj'>
>>> type(foo)
<type 'instance'>
>>> class Bar(object):pass
>>> bar = Bar()
>>> type(Bar)
<type 'type'>
>>> type(bar)
<class '__main__.Bar'>
为何type(Foo) 返回是<type 'classobj'>
而 type(Bar) <type 'type'>
type(foo) 返回<type 'instance'> 而type(bar) 返回<class '__main__.Bar'>
这两个的差异是一个继承了 builtin.object,获取了一些额外的属性和方法,而一个没有。
比如type(object)的返回值本身就是
你可以这么看看
dir(object)
dir(Foo)
dir(Bar)