编程中对于函数, 都有实参和形参的概念, 在Python里面则比较独特, 记三例如下:
一.
a = 1
def f(a):
a*=2
return a
f(a)
print(a)
显然不改变a值,还是1
二.
a = np.array([1,2,3])
def f(a):
a*=2
return a
f(a)
print(a)
这时返回[2,4,6], 在Python中变量名相当于标签, 或者指针, 所以会变.
三.
a = np.array([1,2,3])
def f(a):
b = a[2]
b*=2
return a
f(a)
print(a)
结果是[1,2,3], 单个元素赋值不会影响a
四.
a = np.array([[1,2,3],[1,2,3]])
def f(a):
b = a[1]
b *= 2
return a
f(a)
print(a)
结果是[[1,2,3],[2,4,6]], 子数组赋值会影响a, 还是标签(指针)
转载本文请联系原作者获取授权,同时请注明本文来自曹越科学网博客。
链接地址:http://blog.sciencenet.cn/blog-3296568-1036657.html
上一篇:数据拟合中的归一化
下一篇:Python array冒号的滥用