我认为传递给 python 函数的变量的更改保留在函数的本地范围内,而不是传递到全局范围内。但是当我写一个测试脚本时:
#! /usr/bin/python
from numpy import *
def fun(box, var):
box[0]=box[0]*4
var=var*4
return 0
ubox,x = array([1.]), 1.
print ubox,x
fun(ubox,x)
print ubox,x
输出是:
[myplay4]$ ./temp.py
[ 1.] 1.0
[ 4.] 1.0
整数变量 x 不受函数内部操作的影响,但数组受。列表也会受到影响,但这只发生在对列表/数组切片而不是对单个元素进行操作时。
谁能解释为什么在这种情况下本地范围会传递给全局范围?