Python函数内修改变量返回后,原函数变量未更新如何解决?
问题解决:函数内修改变量后外部未更新的处理
Python中整数属于不可变类型,函数传参时传递的是变量值的副本。你代码里myfunct1中修改的v1是函数内部的局部变量,和myfunct0里的v1是两个独立的变量,所以修改后不会影响外部的原始值。
要在不新增变量的前提下解决,直接把myfunct1的返回值赋值给myfunct0里的v1即可:
def myfunct1(v1, v2): v1 = v1 * v2 print(v1) return v1 def myfunct0(v1, v2): v1 = myfunct1(v1, v2) # 将返回值直接赋值给原v1变量 print(v1) v1 = int(input("Enter a number: ")) v2 = int(input("Enter a second number: ")) myfunct0(v1,v2)
这样修改后,myfunct0里的v1会被myfunct1返回的计算结果覆盖,后续打印的就是更新后的值,完全符合你“不新增变量”的要求。
内容的提问来源于stack exchange,提问作者Michael Debo
相关产品推荐
相关产品推荐

