我们的目标是:通过这一套资料学习下来,通过熟练掌握python基础,然后结合经典实例、实践相结合,使我们完全掌握python,并做到独立完成项目开发的能力。
上篇文章我们讨论了类继承的相关知识。今天我们将学习一下模块的相关基础知识。
1、模块概述
python 提供了强大的模块支持,有标准库中包含的大量的模块,还有第三方模块,以及自定义模块。模块的英文module。打个比方,一个函数相当于一个积木,而一个模块相当于一盒主题的积木,通过它可以拼出某一个主题的东西。这样我们可以认为一个模块中包含多个函数。
在python中,我们新建一个.py文件就被称为一个模块。
如下图所示,我们编写了my_function.py文件,里面包含很多个函数。
通常情况下,我们把能够实现某一特定功能的代码作为一个模块放置在一个文件中,以方便被其它程序或脚本导入并使用。同时要注意模块的名称要避免重复。
上图中所示就是自定义模块。
2、自定义模块
自定义模块有两个作用:一个是规范代码,让代码更容易阅读;
另外,方便其它程序可使用已经编好的代码,以提高开发效率。自定义模块需要先创建模块,然后再导入使用模块。
1)创建模块
可以在项目中新建python文件即可创建。如下图所示
像下图所示,我们创建的my_function.py文件
例如:编写了函数,
#定义一个过滤敏感广告次的函数,对于最好,最优秀,遥遥领先这种广告次替换展示
def replace_chars(string):
pattern = r'(最好)|(最优秀)|(遥遥领先)'
new_string = re.sub(pattern,"@^^@",string)
print(new_string)
2)通过import导入模块使用
我们创建了my_function.py文件,并且编写了函数,
导入模块的语法:import modulename [as alias]
modulename -----指要导入的模块名称,多个模块的话使用,隔开
as alias -----选填,给模块起一个别名
举个例子:
我们在main.py中使用my_function.py文件中的函数,
import my_function
advertisement_huawei= "华为华为,科技遥遥领先,是宇宙中最优秀的手机!"
my_function.replace_chars(advertisement_huawei)#注意要添加模块
这样就可以使用my_function.py中的函数了。注意调用函数需要加上模块名称
3)from … import 导入函数
导入语法:from modulename import member
member ----可以是要导入的变量、函数、类等
如上面的例子可以改下:
from my_function import replace_chars
advertisement_huawei= "华为华为,科技遥遥领先,是宇宙中最优秀的手机!"
replace_chars(advertisement_huawei)
此时,调用函数不需要前面加模块名称。
输出结果和上面的一致。
3、导入标准模块
导入标准模块,像math,我们可以使用其中的pi计算圆的面积
CTRL + 点击math 可以查看对应math模块
import math #导入模块math
#计算圆的面积
r = float(input("请输入圆的半径"))
area = math.pi * r * r
print("圆的面积为:{:.2f}".format(area))
参考输出:
4、模块搜索目录
使用import 导入模块时,会按照以下顺序去查找模块:
1)当前目录,即执行python脚本文件所在的目录进行查找;
2)在PYTHONPATH(环境变量)下的每个目录中进行查找
3)在python 的默认安装目录中查找
以上位置保存在标准模块sys的sys.path 变量中。下面查看以下目录;
import sys
print(sys.path)
查看输出:
['D:\\dewi\\project2024\\myListPractice\\pythonProject1', 'D:\\dewi\\project2024\\myListPractice\\pythonProject1', 'C:\\Users\\dewi\\python311.zip', 'C:\\Users\\dewi\\DLLs', 'C:\\Users\\dewi\\Lib', 'C:\\Users\\dewi', 'D:\\dewi\\project2024\\myListPractice\\pythonProject1\\.venv', 'D:\\dewi\\project2024\\myListPractice\\pythonProject1\\.venv\\Lib\\site-packages']
若是我们要导入的模块不在上面的路径目录,可以在PYTHONPATH变量中添加(这个网上很容易搜索到,就不展开讲)。
另外,我们也可以临时增加:
import list_learning #开始说找不到对应的模块
sys.path.append("D:\\dewi\\demo")
print(sys.path)
查看是不是在sys.path :
这种方法添加的目录只是在执行当前文件的窗口中有效,窗口关闭后即失效。
当然,最简单的是将我们的模块放到sys.path 其中一个目录下。
今天先写学习到这里了,每天进步一点点。明天也要加油啊!