使用 python 更改内存中变量的值

(在 python 中)我希望能够写出类似的东西,并且作为结果具有和的总和的值,并且不会更改(即,在内存中变量的地址处更改数据,而不是创建一个具有总和结果的新地址并引用它)。a + baabid(a)a


我的尝试使用失败:+=


a, b = 5, 6

start_id = id(a)

a += b

print(start_id == id(a))

# Outputs: False


守着星空守着你
浏览 66回答 2
2回答

拉丁的传说

想要做这样一个加法函数(使用示例:“a + b”),它将修改a并且不返回任何内容(在Python中)当在函数中执行此操作时,您不能简单地使用,因为将被视为未定义的局部变量。因此,您需要明确告知您要使用全局变量:a += baadef add_to_a(val):   global a   a += vala = 42b = 1add_to_a(b)由于现在的实际问题是为什么在更改答案的值后会发生变化:因为积分在python中是不可变的,你必须解决这个问题 - 就像这个问题的答案一样ida

繁星淼淼

在 python 中,仅对对象传递引用。如果你想做这样的事情,你需要创建一个表示你的整数的对象。您还可以通过在调用函数时获取程序的作用域来欺骗系统def function(a,b, scope=locals()):  var_name = [key for key, value in scope.items() if value == a][0]  scope[var_name] += ba = 4b = 5function(a, b)print(a) #output 9请注意,此处的结果将绑定到第一个具有相同值的变量,该变量可能是一个大的烦恼。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python