您的位置:首页 > 编程语言 > Python开发

python记录小错误

2016-03-07 20:29 417 查看
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

来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python