如何解决如何用函数交换全局变量
我想创建一个函数,如果我给出2个变量,它将在全局范围内交换它们的值。例如a = 1,b =2。我想像a = 2,b = 1一样。 这是代码
def swap(n,n2):
n,n2 = n2,n
print(n,n2)
我也尝试了以下代码:
def swap(n,n2):
temp = n
n = n2
n2 = temp
global x
global x2
x = n
x2 = n2
print(x,x2)
我尝试过,但是它没有全局交换变量。帮助。
解决方法
在函数内部交换变量仅影响函数的范围。
使用globals()
访问全局范围字典:
global sabich1
global sabich2
sabich1,sabich2 = 1,2
def swap(n,n2):
globals()[n],globals()[n2] = globals()[n2],globals()[n]
swap('sabich1','sabich2')
# 2 1
print(sabich1,sabich2)
,
您只需要在函数内部引用全局变量即可。
请参考下面的代码。
n=1
n2=2
def swap():
global n,n2
n,n2 = n2,n
print(n,n2)
swap()
print(n,n2)
输出
1 2
2 1
,
好吧,我相信您可以执行以下操作:
a = 1
b = 2
def swap(var1,var2):
var1,var2 = var2,var1
return var1,var2
a,b = swap(a,b)
,
因为Python通过值传递而不是通过引用传递。因此,将形成一个新的参数副本,这些参数将被交换而不是原始参数。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。