gpt4 book ai didi

python - 在访问 python 中的对象时返回默认成员

转载 作者:太空宇宙 更新时间:2023-11-04 07:26:19 25 4
gpt4 key购买 nike

我正在编写一个“环境”,其中每个变量都由一个值和一个描述组成:

class my_var:
def __init__(self, value, description):
self.value = value
self.description = description

创建变量并将其放入字典中:

my_dict["foo"] = my_var(0.5, "A foo var")

这很酷,但 99% 的变量操作都与“值”成员有关。所以我必须这样写:

print my_dict["foo"].value + 15  # Prints 15.5

my_dict["foo"].value = 17

我希望对对象 my_dict["foo"] 的所有操作都可以默认为 "value"成员。换句话说,我想写:

print my_dict["foo"] + 15     # Prints 5.5

诸如此类。

我发现的唯一方法是重新实现所有 下划线成员(eq、add、str 等),但我觉得这是错误的方法。有什么神奇的方法可以使用吗?

解决方法是使用更多字典,如下所示:

my_dict_value["foo"] = 0.5
my_dict_description["foo"] = "A foo var"

但我不喜欢这个解决方案。你有什么建议吗?

最佳答案

两个一般说明。

  1. 类名请使用大写。

  2. 请(除非使用 Python 3.0)子类对象。 class My_Var(object):,例如。

现在回答你的问题。

假设你有

x= My_Var(0.5, "A foo var")

python如何区分x、复合对象和x的值(x.value)?

你想要以下行为吗?

  • 有时 x 表示整个复合对象。

  • 有时 x 表示 x.value

如何区分这两者?你将如何告诉 Python 你的意思?

关于python - 在访问 python 中的对象时返回默认成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/737512/

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