gpt4 book ai didi

python - 类 `object` 的实例

转载 作者:太空宇宙 更新时间:2023-11-03 12:34:49 25 4
gpt4 key购买 nike

我想创建一个内置类 object 的实例,并将其用作某些变量的容器(如 C++ 中的 struct):

Python 3.2 (r32:88445, Mar 25 2011, 19:56:22) 
>>> a=object()
>>> a.f=2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'object' object has no attribute 'f'

有没有比以下更容易完成此任务的方法:

>>> class struct():
... '''Container'''
...
>>> a=struct()
>>> a.f=2
>>> a.f
2
>>>

更新:

  • 我需要一个容器来保存一些变量,但我不想使用dict - 能够编写 a.f = 2 而不是 a['f'] = 2

  • using a derived class saves you from typing the quotes

  • 另外,有时自动完成会起作用

最佳答案

我认识到反对听写的情绪,因此我经常使用 NamedTuples 或类。 Bunch 在 Python Cookbook 中提供了很好的简写形式,允许你在一个地方做声明和赋值:

point = Bunch(x=x, y=y, squared=y*y)
point.x

打印的 Cookbook(第 2 版)对此进行了广泛的讨论。

恕我直言,对象没有插槽也没有字典的原因是可读性:如果您先使用(匿名)对象存储坐标,然后使用另一个对象存储客户端数据,您可能会感到困惑。两个类定义清楚地表明了哪个是哪个。束没有。

关于python - 类 `object` 的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6719496/

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