python对象引用引起的问题
2016-11-17 22:24
162 查看
我们都知道python中一切皆是对象,这句话我记得很清楚,但是平时用起来确也容易混淆。
今天遇到一个bug,大概情况是这样:
我在一个文件中修改了a,而在另一个列表中读c,结果发现c总是不对…..检查好久才想起来了,c中存贮的a应该是a的引用,也就是python中常见的对象浅拷贝。测试一下:
以后一定要注意啊,特别是多处读写的敌方,很容易忽视!
如果在c中独自保留a的副本,则应该使用copy。
今天遇到一个bug,大概情况是这样:
a = [1,2,3] b = [11,22,33] c = [a,b] print c # c = [[1, 2, 3], [11, 22, 33]]
我在一个文件中修改了a,而在另一个列表中读c,结果发现c总是不对…..检查好久才想起来了,c中存贮的a应该是a的引用,也就是python中常见的对象浅拷贝。测试一下:
a[0] = 5 print c # c = [[5, 2, 3], [11, 22, 33]]
以后一定要注意啊,特别是多处读写的敌方,很容易忽视!
如果在c中独自保留a的副本,则应该使用copy。
a = [1,2,3] b = [11,22,33] np.copy(a) c = [np.copy(a), b] print c a[0] = 5 print c #[array([1, 2, 3]), [11, 22, 33]] #[array([1, 2, 3]), [11, 22, 33]]
相关文章推荐
- python类中显示重写__del__方法引起循环引用的对象无法释放,一种循环引用的检测方法
- python中对象引用计数的相关问题
- python类中显示重写__del__方法,引起循环引用的对象无法释放,造成垃圾泄露问题
- python对象的复制问题,按值传递?引用传递?
- 使用 EntityFramework后把一个对象序列化成json字符串引起循环引用的问题
- python对象引用的问题
- 快速解决引用对象时,必须加owner的问题
- 如何解决引用对象时,必须加所有者(owner)的问题
- 未将对象引用设置到对象的实例--问题记录
- Asp.net 2.0 中 Cache 丢失的问题:“值不能为空”或“未将对象引用设置到对象的实例”
- 关于c# 未将对象引用设置到对象实例的问题(不解。。。)是不是数据库的问题....
- 如何解决引用对象时,必须加所有者(owner)的问题
- 如何解决引用对象时,必须加所有者(owner)的问题
- Java Puzzlers笔记--puzzle 13: Animal Farm 优先级以及对象引用问题
- php5 中, 对象引用的注意问题
- 如何解决引用对象时,必须加所有者(owner)的问题
- WCF与Nhibernate 对象循环引用问题
- url重写(urlrewriter)引起的"未将对象引用设置到对象的实例"错误发生的原因
- 关于“System.NullReferenceException: 未将对象引用设置到对象的实例”问题原因。
- 终于解决.net 连接oracle数据库时提示的未将对象引用设置到对象的实例的问题