gpt4 book ai didi

python - 有没有办法将列表中变量的更改反射(reflect)在列表中?

转载 作者:行者123 更新时间:2023-12-04 02:32:20 24 4
gpt4 key购买 nike

例如:

Variable = 1
List = [0, Variable, 2, 3]
Variable = 5
print(List)

输出为 [0,1,2,3]。除了重新定义列表之外,还有其他方法可以获取 [0,5,2,3] 吗?另外,是否可以反向完成(即 List[1] = 5,使 Variable == 5)?

最佳答案

不直接。该列表不会知道重新分配,也没有任何方法可以拦截重新分配并进行一些元编程。 (*错误除外,见注释)。如果 Variable 是一个容器,您可以更新它的内容,两者都会看到。例如,它可以是 dictlist。但是上课是一种方便的方法。在这个简单的示例中,所有用户都必须知道使用 variable.val,但您也可以花时间实现所有 dunder 方法以将其抽象掉。

class Variable:
def __init__(self, val):
self.val = val

variable = Variable(1)
my_list = [0, variable, 2, 3]
variable.val += 1
my_list[1].val += 1
print(variable.val)

*请注意原始问题中的评论,赋值可以被覆盖,但它很困惑。这个方法我比较清楚,但是如果你喜欢魔术,那么https://stackoverflow.com/a/52438651/642070

关于python - 有没有办法将列表中变量的更改反射(reflect)在列表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63566948/

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