atojaoomy 2012-02-03 11:41
浏览 330
已采纳

class Foo:pass 与class Foo(object):pass的区别

如题

>>> 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'>

  • 写回答

1条回答 默认 最新

  • 「已注销」 2012-02-06 17:34
    关注

    这两个的差异是一个继承了 builtin.object,获取了一些额外的属性和方法,而一个没有。
    比如type(object)的返回值本身就是
    你可以这么看看

    dir(object)
    dir(Foo)
    dir(Bar)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?