【发布时间】:2021-10-09 14:21:47
【问题描述】:
我有这样的代码
variable =0
def functio(var):
var += 2
return boolean
functio(variable)
但是 var 不会改变。 我将不同的变量传递给方法,所以全局不起作用
【问题讨论】:
标签: python-3.x variables
我有这样的代码
variable =0
def functio(var):
var += 2
return boolean
functio(variable)
但是 var 不会改变。 我将不同的变量传递给方法,所以全局不起作用
【问题讨论】:
标签: python-3.x variables
在 Python 中参数总是通过赋值传递,所以如果你给 functio() 一个变量,在 functio() 中它只会是这个变量的值。
解决此问题的一种方法是将变量包装在列表中以使用引用,如下所示:
variable = [0]
def functio(var):
var[0] += 2
return boolean
functio(variable)
因为列表包含指向其元素在内存中的地址的指针,所以范围无关紧要。
编辑:更多方法来做到这一点here
【讨论】: