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

新手上路,请多包涵

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

 class Classname(randomobject):
    pass

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

但是当我这样做时:

 class Classname(object):
    pass

该模块运行良好。那么,如果 object 不是关键字,那么它是什么?

原文由 Bentley4 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 558
2 个回答

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

(这导致了一个有趣的属性,您可以采用任何内置类型,并使用 __bases__ 属性来获得称为对象的类型)。

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

原文由 Marcin 发布,翻译遵循 CC BY-SA 3.0 许可协议

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

class Classname(object):
    pass

class Classname():
    pass

class Classname:
    pass

好吧,会有细微 差别,但从根本上来说并不重要,因为对象类是所有对象的基础。

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

原文由 prosti 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题