码迷,mamicode.com
首页 > 其他好文 > 详细

001

时间:2018-02-25 00:02:47      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:src   没有   ima   .com   元组   引用   导入   http   sys   

1、==, is

== 用来判断值是否相等

is 用来判断二者是否指向了同一个东西

技术分享图片

 

 学到 gc 的时候,你就知道为什么会出现下面这种情况

技术分享图片

 

2、深拷贝和浅拷贝

浅拷贝:如果你把一个变量赋值给另外一个变量,没有把这个变量的值给它,而是把这个变量所指向的地址给它了。

技术分享图片

 

由上例可以看出,python中大部分都是浅拷贝,要想实现深拷贝,需要借助 copy 模块。

 

技术分享图片

 

 

3、copy模块的deepcopy方法

技术分享图片

 

 e是一个数组,深拷贝自c,e变量本身拿的是c的值,数组e的每一个元素也是拿的值而不是引用。

深拷贝就是递归的取值而不是取地址。

深拷贝就是彻彻底底和源的所有断开联系但保持值一样。

 

4、copy模块的copy方法 

技术分享图片

 

 deepcopy是,如果发现里面存的是引用,会把引用对应的值拷贝出来,不管有多少层都会重复这个操作。

 copy是,只会拷贝第一层的值,其他层都是拷贝引用。

 

 

 5、copy.copy 拷贝元组时的特点

技术分享图片

 

copy方法虽然比deepcopy方法拷贝的深度浅,只拷贝第一层,那么c、e的id应该不一样才对啊?

因为元组有个特点,不可变,既然是不可变,拷贝多份没有意义。 

 

 6、import 搜索路径

技术分享图片

 

 sys.path 是个列表,列表就应该支持 append

技术分享图片

 

 7、重新导入模块

 

技术分享图片

 

技术分享图片

 

在我没有退出这个程序的情况下,别人修改了test模块

 

技术分享图片

 

test模块已经修改了,但我之前的程序没有退出,我现在在这个程序里再调用一次这个模块的test方法

 

技术分享图片

 

 期望显示打印1和2,但还是只打印1

 

程序在执行的过程中,即使导入的模块被修改了,但也获取不到最新模块的功能。

只要程序没有退出,即使你再 import 一次,还是只能使用旧模块的功能

除非reload

 

技术分享图片

 

001

标签:src   没有   ima   .com   元组   引用   导入   http   sys   

原文地址:https://www.cnblogs.com/drink/p/8467975.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!