如何在整数变量被def修改后对其进行更新?#N/A
如何更新被函数修改后的整数变量
嘿,我猜你是在Python里碰到这个问题了——毕竟def是用来定义函数的,而整数又是不可变类型,直接在函数里改往往达不到你想要的效果。别慌,我给你捋几个实用的解决办法:
方法1:让函数返回修改后的值,重新赋值给原变量
这是最直观也最推荐的方式。先看看你可能踩过的坑:
def update_num(num): num += 1 # 这里只是修改了函数内部的局部变量,外部的原变量根本没变化 my_num = 5 update_num(my_num) print(my_num) # 输出还是5,白忙活了
只要改改函数,让它返回修改后的数值,再重新赋值就行:
def update_num(num): num += 1 return num # 返回新的数值 my_num = 5 my_num = update_num(my_num) # 把返回的新值覆盖原变量 print(my_num) # 现在输出6,完美更新!
方法2:用可变容器包裹整数(比如列表)
Python里列表是可变类型,函数里修改列表内的元素会直接影响外部的容器。把整数放进列表里,就能轻松实现修改:
def update_num(num_list): num_list[0] += 1 # 直接修改列表里的元素 my_num = [5] # 把整数塞进列表 update_num(my_num) print(my_num[0]) # 输出6,搞定
方法3:使用全局变量(谨慎使用)
如果你的整数变量是全局作用域的,可以在函数里用global关键字声明后修改,但这种方式会让代码耦合度变高,后期维护麻烦,除非必要不建议用:
my_num = 5 def update_num(): global my_num # 声明要操作的是全局变量 my_num += 1 update_num() print(my_num) # 输出6
其实核心逻辑很简单:Python里整数是不可变对象,你在函数里对它做的加减操作,都是创建了一个新的整数对象,而不是改变原来的那个。所以要么把新对象返回去重新赋值,要么用可变容器来装它,这样就能实现在函数外更新变量啦。
内容的提问来源于stack exchange,提问作者Alden Tank
相关产品推荐
相关产品推荐

