python记录小错误
2016-03-07 20:29
417 查看
python3迭代器
py3中迭代器的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
来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
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动态类型的学习---引用的理解
- Python3写爬虫(四)多线程实现数据爬取
- 垃圾邮件过滤器 python简单实现
- 下载并遍历 names.txt 文件,输出长度最长的回文人名。
- install and upgrade scrapy
- Scrapy的架构介绍
- Centos6 编译安装Python
- 使用Python生成Excel格式的图片
- 让Python文件也可以当bat文件运行
- [Python]推算数独
- Python中zip()函数用法举例
- Python中map()函数浅析
- Python将excel导入到mysql中
- Python在CAM软件Genesis2000中的应用
- 使用Shiboken为C++和Qt库创建Python绑定
- FREEBASIC 编译可被python调用的dll函数示例
- Python 七步捉虫法