python没有C++中的指针和引用这些概念,直接传入变量不能实现类似引用参数的功能。
def incr_num(num):
num += 1
num = 0
num
0
incr_num(num)
num
0
这是因为:
2. python中的整数都有其固定id>>> a=5 >>> b=5 >>> id(a) 1426024640 >>> id(b) 1426024640 >>> a+=1 >>> a 6 >>> id(a) 1426024656 >>> b 5 >>> id(b) 1426024640 >>> c=6 >>> id(c) 1426024656
浮点数的id在做操作之后id也要变
>>> a=2.1 >>> b=2.1 >>> id(a) 48419408 >>> id(b) 48422128 >>> a+=1 >>> id(a) 48421328
但是数组的id不变
>>> aa=[1] >>> bb=[1] >>> id(aa) 49570440 >>> id(bb) 49571200 >>> aa[0]+=1 >>> id(aa) 495704403. python实现传值参数
所以我们可以这样实现引用参数,让变量变成数组形式
def incr_list(list):
list[0] += 1
list = [0]
list[0]
0
incr_list(list)
list[0]
1



