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

Ben*_*ey4 33 python object keyword

当我创建一个包含其唯一内容的模块时:

class Classname(randomobject):
    pass
Run Code Online (Sandbox Code Playgroud)

我尝试运行解释器说randomobject没有定义的模块的.py文件.

但当我这样做时:

class Classname(object):
    pass
Run Code Online (Sandbox Code Playgroud)

模块运行得很好.所以,如果object不是关键字,那么它是什么?

Mar*_*cin 16

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

(这会导致有趣的属性,您可以采用任何内置类型,并使用该__bases__属性来达到称为对象的类型).

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


pro*_*sti 10

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

class Classname(object):
    pass

class Classname():
    pass

class Classname:
    pass
Run Code Online (Sandbox Code Playgroud)

嗯,会有细微的差别,但不是根本重要的,因为对象类是所有的基础。

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


Tay*_*mon 7

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

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

我不确定你为什么期望继承randomobject工作.


Kie*_*ong 5

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