class Classname(object),Python中的'object'是什么词?

时间:2012-04-06 13:42:10

标签: python object keyword

当我创建一个单独内容的模块时:

class Classname(randomobject):
    pass

我尝试运行模块的.py文件,解释器说randomobject未定义。

但是当我这样做时:

class Classname(object):
    pass

该模块运行正常。因此,如果object不是关键字,那么它是什么?

4 个答案:

答案 0 :(得分:14)

object是一个(全局)变量。默认情况下,它绑定到内置类,该类是类型层次结构的根。

(这导致了一个有趣的属性,你可以使用任何内置类型,并使用__bases__属性来达到名为object的类型。

不是关键字或运算符的内置内容都是标识符。

答案 1 :(得分:6)

object是一个引用内置类型的标识符。

与许多其他语言不同,Python中没有原始类型。一切都是对象,包括所有数据类型。

我不确定您为什么希望从randomobject继承工作。

答案 2 :(得分:2)

object是在Python 2中创建新样式类时继承的基类。

答案 3 :(得分:0)

以下三个类声明在Python 3中相同

class Classname(object):
    pass

class Classname():
    pass

class Classname:
    pass

好吧,differences会比较少,但是从根本上讲并不重要,因为对象类是所有对象的基础。

如果您打算编写Python不可知代码(Python2和Python3不可知),则可以使用第一个声明。