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)

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

报告相同问题?

悬赏问题

  • ¥15 Stata 面板数据模型选择
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 请问这个是什么意思?
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用