python记录小错误

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
来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值