python3迭代器
py3中迭代器的next函数变成
__next__
了
python函数调用
懒得重写了,引用知乎的回答吧
说得具体点可以把python的变量理解成一个名字指向实际的值,在传到函数里的时候,
是告诉函数的变量名字也指向我的这个值,但是并不是我自己传到函数内 比如foo = [1,2,3]
可以理解成为foo指向[1,2,3],foo和[1,2,3]并不是在一起 现在有个函数def alter(bar):
bar.append(4)
bar = [0,1]如果我们把foo传给alter这个函数, alter(foo) 就会有foo和bar分别指向[1,2,3] 执行bar.append(4)
因为bar指向[1,2,3], [1,2,3]现在变成[1,2,3,4]
因为foo也指向[1,2,3],现在被bar改成了[1,2,3,4],foo也是[1,2,3,4] 执行bar = [0,1]
bar指向一个新的[0,1],但是foo还是指向[1,2,3,4] 运行完alter函数foo是[1,2,3,4]
所以理论上不是传引用,如果穿引用foo在执行完alter函数后应该是[0,1]下面是完整测试代码
def alter(bar):
bar.append(4)
bar = [0,1]
foo = [1,2,3]
alter(foo)
print ‘foo’, foo作者:openkai 链接:http://www.zhihu.com/question/32003140/answer/54293695
来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。