Python之常见问题和常见注意事项
来源:互联网 发布:象棋软件排行 编辑:程序博客网 时间:2024/06/05 02:27
Python的函数参数按值还是按引用传递参数?
详情见官方文档:
http://www.runoob.com/python/python-functions.html
这里只说一个我碰到的例子:
def tst(a): a.append([1,2,3]) print('函数tst中的列表a是:',a) passx = ['q','w','e']tst(x)print('函数tst外的列表x是:',x)
输出:
函数tst中的列表a是: ['q', 'w', 'e', [1, 2, 3]]函数tst外的列表x是: ['q', 'w', 'e', [1, 2, 3]]
从上面现象我们知道,函数在改变形参a
的同时居然也把实参x
也给改变了!
然后我又去找了一些资料才知道,在python中,strings, tuples, 和numbers是不可更改的对象,而list,dict等则是可以修改的对象。
然后我又试了一下numpy.array
,也是可修改的。
如果想在改变形参的同时又不改变实参,可以这么做:
def tst(a_): a = a_.copy() #copy一下形参接受到的值并赋给变量a a.append([1,2,3]) print('函数tst中的列表a是:',a) passx = ['q','w','e']tst(x)print('函数tst外的列表x是:',x)
输出结果:
函数tst中的列表a是: ['q', 'w', 'e', [1, 2, 3]]函数tst外的列表x是: ['q', 'w', 'e']
阅读全文
0 0
- Python之常见问题和常见注意事项
- python常见注意事项
- Python 2.x中的和编码相关的常见问题和注意事项
- Python常见问题和技巧
- Python数据结构之注意事项
- Python初学之注意事项
- JQuery Mobile常见问题解决方法和注意事项不断更新
- Python注意事项和误区
- Ubuntu常见问题和常见快捷键汇总
- Ubuntu常见问题和常见快捷键汇总
- Python安装笔记之注意事项
- python基本语法和注意事项
- 您解答中期答辩的一些注意事项和常见问题
- python中的常见的列表操作及注意事项
- Python常见问题解决办法之:环境搭建
- python操作mysql方法和常见问题
- python操作mysql方法和常见问题
- python操作mysql方法和常见问题
- Codeforces Round #356 (Div. 2) E. Bear and Square Grid 滑块
- 使用librdkafka 封装的C++类
- Android音频驱动-ASOC之PCM Device创建
- Java GUI:图形用户界面三剑客相比拼
- Q:前端canvas标签的内容传递到后台保存为图片时出现无法正常显示的问题
- Python之常见问题和常见注意事项
- 基本数据结构:栈(stack)
- Android音频驱动-ASOC之PCM Open
- hiho一下,第165周 题目1 : 分隔相同字符
- VLC全部参数,libvlc_new函数参数,VLC SDK开发
- 大规模知识图谱的构建
- html学习12-内容丰富—图像
- esplorer v0.2.0 中文版
- (lintcode)第13题字符串的查找