如何在Python函数中修改作为参数传入的变量?
如何修改外部变量num的值?
先看你的原代码:
num = 3 def add(variable, number): variable += number add(num, 2) print(num) # 运行后输出3
之所以结果还是3,是因为Python里整数属于不可变类型——当你把num传入函数时,variable只是拿到了num值的一个副本,函数内部对variable的累加操作,只会改变这个局部变量的指向,完全不会影响外部的num变量。
下面给你几种能把num改成5的方法:
方法1:让函数返回修改后的值,重新赋值(推荐)
这是Python里最常规的做法,通过返回值传递修改结果,逻辑清晰,也符合函数的设计原则。
num = 3 def add(variable, number): variable += number return variable num = add(num, 2) print(num) # 输出5
方法2:用可变对象包裹数值
列表是可变类型,函数内部对列表元素的修改会直接作用于原对象,不用返回值也能生效。
num = [3] # 把数值放进列表里 def add(variable, number): variable[0] += number # 修改列表的第一个元素 add(num, 2) print(num[0]) # 输出5
方法3:用global关键字(不推荐)
直接在函数里声明num是全局变量,就能直接修改它,但这种写法会破坏代码的封装性,后续维护起来容易出问题,只适合简单场景用。
num = 3 def add(number): global num # 声明使用全局的num num += number add(2) print(num) # 输出5
内容的提问来源于stack exchange,提问作者jboak26
相关产品推荐
相关产品推荐

