gpt4 book ai didi

python - object() 有什么用?

转载 作者:太空狗 更新时间:2023-10-29 17:43:11 26 4
gpt4 key购买 nike

怎么可能

class EmptyClass:
def __init__(self):
pass

e = EmptyClass()
e.a = 123

工作并且:

o = object()
o.a = 123

不会 (AttributeError: 'object' object has no attribute 'a') while

print isinstance(e, object)
>>> True

?

当您不能像这样使用它时,object() 有什么用?

最佳答案

您不能将属性添加到 object 的实例,因为 object 没有 __dict__ attribute (这将存储属性)。来自docs :

class object

Return a new featureless object. object is a base for all classes. It has the methods that are common to all instances of Python classes. This function does not accept any arguments.

Note: object does not have a __dict__, so you can’t assign arbitrary attributes to an instance of the object class.

object 确实有它的用途:

  1. 如上所述,它是 Python 中所有对象的基类。您看到和使用的一切最终都依赖于 object

  2. 您可以使用object 来创建sentinel values这是完全独一无二的。使用 isis not 测试它们只会在给出确切的 object 实例时返回 True

  3. 在 Python 2.x 中,您可以(应该)继承 object 来创建一个 new-style class .新型类具有增强的功能和更好的支持。请注意,所有类在 Python 3.x 中都是自动的新样式。

关于python - object() 有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28306371/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com