模块的定位
-
导入模块的,系统寻找模块(某个路径中查找)
如果找不到,抛出异常 ModuleNotFoundError -
模块的查找路径(模块的定位)
(1) 系统规定死的路径
先后顺序:
a. 内置模块路径(python.exe中), 任意地方都能使用
b. 系统标准模块路径(python安装路径/Lib目录中), 任意地方都能使用
c. 主执行文件所在当前目录
d. 第三方包的安装路径(pip install PyMySQL): python安装路径/Lib/site-packages,
任意地方都能使用(2) 自定义的路径
任意指定一个路径作为包/模块的查找路径
实现方式:
import sys
sys.path # 系统路径, 列表, 可以修改的
sys.path.append(“新目录路径”)
sys.path.insert(0,“新目录路径”) -
补充坑爹货(pycharm)
pycharm自动将 项目根目录添加到了 sys.path 中, 原本可能是没有的
使用模块的注意事项
-
回顾模块的定位
(1) 系统规定死的路径(有顺序的)
a. 内置模块(python.exe中)
b. 系统标准模块(python安装路径/Lib)
c. 主执行文件所在的当前目录
d. 第三方包的安装路径(python安装路径/Lib/site-packages)(2) 自定义的模块路径
import sys
sys.path.append(“新模块目录”)
sys.path.insert(0,“新模块目录”) -
注意自定义模块与不要和其他模块重名(重名的问题)
拷贝
-
概念:
将原数据 复制 到一个新的数据空间, 修改新数据不影响原数据, 这就叫作 拷贝 -
实现
简单数据不存在拷贝, 针对都是复杂数据.复杂数据: 列表,字典,集合
python自带的拷贝模块
import copy
方法:
浅拷贝: 只将原数据拷贝到一个新的空间,但是不管原数据中是否有复杂数据(不会拷贝里面的复杂数据)
新数据 = copy.copy(数据)深拷贝: 将原数据拷贝到一个新的空间,如果原数据中有复杂数据也会拷贝到一个新的数据空间
新数据 = copy.deepcopy(数据)
is和==的区别
is: 比较地址是否相等
==: 比较数据是否相等