object()内置的什么时候有用?

tem*_*ame 7 python built-in python-3.x

我试图找出我将使用object()内置函数的内容.它不需要参数,并返回所有Python类通用的类型的"无特征对象",并具有所有Python类共有的所有方法.

引用杰克斯凯林顿,什么.IS.这个?

unu*_*tbu 11

即使您不需要使用它进行编程,也object可以达到目的:它是从中派生所有其他对象的公共类.它是mro(方法解析顺序)方法列出的最后一个类.我们需要这个概念的名称和对象,并object为此目的服务.

另一个用途object是创建哨兵.

sentinel = object()
Run Code Online (Sandbox Code Playgroud)

这通常用于多线程编程 - 通过队列 - 来发出终止事件的信号.我们可能不想发送None或任何其他值,因为队列处理程序可能需要将这些值解释为要处理的参数.我们需要一些独特的价值,这是项目的其他任何部分都无法产生的.

以这种方式创建标记提供了这样一个唯一的对象,它肯定不是正常的队列值,因此可以进行测试并用作某些特殊事件的信号.还有其他可能性,例如创建类,类实例或函数,但所有这些替代方案都更大,资源更多,而且不那么简洁object().