值传递
1
2
3
4
5
6
7
8
9
10def swap(a , b) :
# 下面代码实现a、b变量的值交换
a, b = b, a
print("swap函数里,a的值是", \
a, ";b的值是", b)
a = 6
b = 9
swap(a , b)
print("交换结束后,变量a的值是", \
a , ";变量b的值是", b)运行上面程序,将看到如下运行结果:
swap函数里,a的值是 9 ;b的值是 6
交换结束后,变量a的值是 6 ;变量b的值是 9
可以采用全局变量方式。在函数中定义global a, b
- python传入的参数在函数中发生变化,在函数外也会发生变化。看起来是引用传递,底层实现还是值传递。 结果:
1
2
3
4
5
6
7
8
9
10
11def test(S, x):
for i in range(x):
for j in range(3):
if S[i][j] > 0:
S[i][j] = 1
else:
S[i][j] = 0
s = np.array([[1,0,1],[1,1,2]])
test(s, 2)
print(s)[[1 0 1]
[1 1 1]]