python--参数传递
来源:互联网 发布:网页在线客服源码 编辑:程序博客网 时间:2024/06/06 13:05
我们已经了解对象的可变性,例如:
def f(a) a.append("hello")a = []print af(a)print a //此时会发现,列表a中将会对一项“hello”元素,这就是由于列表的可变性导致的
但是我们有时候并不想因为调用了f()方法而将a[]改变掉,此时应该怎么办呢?
1,对list()进行切片
def f(x) x.append("hello") id(x)a = []print aprint id(a)f(a[:]) //对a进行切片print a //此时会发现,a与x的id不同,也就是两者已经不属于同一个对象了
2,传递不同的对象
3,深拷贝 from copy import deepcopy
当对象为不可变对象时,其传递时就相当于局部变量,毕竟人家不可变你怎么可以改动人家!!
from copy import deepcopydef f(x) x.append("hello") id(x)a = []print aprint id(a)f(deepcopy(a)) //对a进行深拷贝print a //此时会发现,a与x的id不同,也就是两者已经不属于同一个对象了
当对象为不可变对象时,其传递时就相当于局部变量,毕竟人家不可变你怎么可以改动人家!!
0 0
- python中的参数传递 * **
- python 函数参数传递
- python的参数传递
- python参数传递详解
- Python的参数传递
- Python:脚本参数传递
- python--参数传递
- python参数传递方式
- python 可变参数传递
- Python-参数传递机制
- Python的参数传递
- python 函数参数传递
- python 参数传递
- python参数传递
- python pycharm参数传递
- Python参数传递 - 引用传递&值传递
- Python 参数传递之引用传递
- python中的函数参数传递
- TCP和UDP的区别与联系
- 二元树的深度
- HTML入门学习笔记--认识HTML(1)
- 算法学习:Pac-Man的简单对抗
- 文章标题
- python--参数传递
- 通过指定Base64编码字符串 转换成 Bitmap图片
- Idea mevan工程 Springmvc-Mybatis 配置教训绑定无效
- github Push失败
- 两个客户端通过服务器通信(互发)
- 利用Java接口对HDFS进行读写操作
- 《深入Linux内核架构》读书笔记第一章简介和概述
- 左神的书——《程序员代码面试指南》之删除链表的中间节点或a/b节点 c++实现
- 实现多重选项点选添加