首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

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

2012-10-20 
class Foo:pass 与class Foo(object):pass的区别 class Foo:pass foo Foo() type(Foo) type

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

?

python2.2引入了new-style class.如果一个类继承了object对象,那么它就是一个new-style class.
内建的object对象.
object类是所有new-style class的祖先.object对象定义了一系列特殊的方法来实现所有对象的默认行为.
静态方法__new__用来创造类的实例.__init__方法用来初始化自己.

热点排行