首页 > 编程语言 > 详细

Python-其他

时间:2020-07-12 21:01:42      阅读:69      评论:0      收藏:0      [点我收藏+]

一、模块导入

1. 模块导入路径

使用 import xxx 时,有时候会遇到 “No module named ‘xxx‘",找这个模块的路径,可以通过 sys.path 查看,增加路径的方法同在 list 中增加一个变量,例如增加当前路径: sys.path.append(../)

2. 重新导入

如果导入的模块已经修复了,需要重新导入才能获取到最新的内容,使用 reload() 方法可以实现,但这个方法是在 imp 模块,也需要导入才能用: from imp import * 

3. 循环导入

互相调用,导致死循环

二、== & is

== 是用来判断两边值是否相同,is 用来判断两边是否指向同一个地方

a = 1000, b=1000, 此时 "a is b" 返回 False,但是在一个范围内数值是一致的

三、深拷贝、浅拷贝

浅拷贝:把某个变量指向的地址赋值给另一个变量

深拷贝:变量指向一个地址,深拷贝就是创造一份一样的数据,指向另一个地址

import copy
a = [11,22,33]

b = copy.deepcopy(a)

print(id(a))
print(id(b))

可以看到指向的内存地址不同

a = [11,2,3]
b = [4,5,6]

c = [a,b]

此时 c 指向的是 a 和 b 的引用

d 深拷贝 c 时,发现 c 的内容也是引用,深拷贝会重新拷贝一份引用的内容

copy 模块中的另一个方法 copy.copy() ,拷贝的是引用时,重新指向了一个内存地址,但指向的内容不变(但对于不可变类型来说,这个方法不创建新的内存地址,还是指向原来的地址)

Python-其他

原文:https://www.cnblogs.com/april-aaa/p/13289507.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!