Python 如何使用函数交换全局变量
我想做一个函数,如果我给2个变量,它会全局交换它们的值。e、 g.a=1,b=2。我想让它像a=2,b=1那样运行。 这是密码Python 如何使用函数交换全局变量,python,variables,swap,Python,Variables,Swap,我想做一个函数,如果我给2个变量,它会全局交换它们的值。e、 g.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
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)
我试过了,但它没有全局交换变量。请提供帮助。在函数内交换变量只会影响函数的范围 用于访问全局范围字典:
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():
全局n,n2
n、 n2=n2,n
打印(n,n2)
互换
打印(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是按值传递的,而不是按引用传递的。因此,将形成一个新的参数副本,并将其交换,而不是原始参数。否。不是Python变量的工作方式。你不想听到的建议是不要使用全局变量,而且在随机函数中更改全局变量看起来不是一个好的做法,这可能会在以后影响你。您的用例是什么?对于您的?
global
访问全局范围来说,a,b=b,a
还不够吗