python的模块引用和查找路径
模块的概念
在计算机的程序开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护。
为了编写可维护的代码,我们把很多函数分组,分别放在不同的文件里,这样每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式,
在python中一个.py文件就称之为一个模块(module)
使用模块有什么好处???
最大的好处就是大大提高了代码的可维护性;
其次代码编写不必从零开始,当一个模块编写完毕,就可以被其他地方引用,我们在编写程序的时候,也经常引用其他模块,包括python内置的模块和来自第三方的模块;
so,模块一共三种:
- python标准库
- 第三方模块
- 应用程序自定义模块
模块导入方法
1、import语句
- 执行对应文件
- 引入变量名
#定义一个模块(模块内只写功能函数)test
# 自定义的函数 def add(x,y): return x + y def sub(a,b): return a - b
#调用test模块
import test #导入定义好的test模块 print(test.sub(9,1)) #调用模块内部的函数
2、from+模块名+import+函数名 #直接调用模块内的指定函数
from test import * *代表调用所有(这种方法不推荐,容易和逻辑函数冲突)
from test import add #直接导入模块内指定的功能函数 print(add(7,5)) #调用
3、文件路径
import sys print(sys.path) # 会把执行文件的路径添加到环境变量里,所有import的东西都会在这个路径里去拿,能找到就拿找不到就拉到; """ ['D:\\Python\\小游戏\\demo', 'D:\\Python\\小游戏\\demo', 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python36\\python36.zip', 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python36\\DLLs', 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python36\\lib', 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python36', 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python36\\lib\\site-packages'] """
若执行文件(bin)与模块文件(test)不在同一路径下如何导入模块:
执行文件bin,想要调用test模块内的函数:
模块test:
执行文件调用多层模块
多层路径用点来连接,执行文件bin调用web2里的cal模块和调用cal模块里的函数;