Python进阶——模块
1、自定义模块
-
一个.py文件就是一个模块
-
把能够实现某一个特定功能的代码放置在一个文件中作为一个模块,从而方便其他程序和脚本导入并使用。模块也可以避免函数名和变量名冲突
-
作用:
- 规范代码
- 方便其他程序使用已经编号的代码
-
创建与实现
-
import导入多个模块时用逗号隔开即可
-
命名空间是记录对象名字和对象之间对应关系的空间,目前python的命令空间是通过字典来实现的。key是标识符,value是具体的对象
-
每执行一条import语句,都会创建一个新的命名空间
#day.py def Sun(day): print("风和日丽"+day) #wk.py——import语句导入模块 import day [as d] #别名 day.Sun("周二") #在调用模块中的变量、函数或类时,需要在变量名、函数名或者类名前添加“模块名.” #wk.py——from...import语句导入模块 【from 模块名 import 函数或变量或类】 #导入多个定义时,用逗号隔开即可,全部导入用*替代 from day import Sun Sun("周二") #from import导入时,同名的定义后者会代替先者
-
-
模块搜索目录
-
import 语句导入模块时,默认情况下,会按照以下顺序进行查找
(1)当前目录,即执行python脚本所在目录
(2)在python(环境变量)下的每个目录
(3)到python的默认安装目录
-
可以通过三种方式添加指定的目录到sys.path中
import sys #这三个目录的位置都保存在sys模块的sys.path #3种方式 - #临时添加 sys.path.append("地址") #增加.pth文件 在该文件中添加要导入模块所在的目录 #在python环境变量中添加
-
2、以主程序的形式执行
-
加入if的判断,是否决定在主函数文件中运行
-
在每个模块的定义中,都包括一个记录模块名称的变量——name——,程序可以检查该变量,以确定它们在哪个模块中执行,如果一个模块不被导入到其他程序中执行,那么它可能在解释器的顶级模块中执行。顶级模块的——name——变量的值为——main——
# day.py print("今天的不开心就到此为止吧,明天依旧光芒万丈~宝贝")#(1)第一种情况 if __name__=='__main__': #(2)第二种情况 print("今天的不开心就到此为止吧,明天依旧光芒万丈~宝贝") def Sun(day): print("风和日丽"+day) #wk.py import day as d #别名 d.Sun("周二") #第一种结果 今天的不开心就到此为止吧,明天依旧光芒万丈~宝贝 风和日丽周二 #第二种结果,加入了判断,被调用的文件只会执行被调用的定义,不会全部执行,如果没有加入if判断,被调用文件会被全部执行 风和日丽周二
3、python中的包
-
作用:避免模块名重名引起的冲突,规范代码
-
就是一个文件夹,特殊之处在于在该文件夹下,必须存在一个名称为“——init——.py”的文件
#创建包 在对应文件夹下面创建一个名称为——init——.py的pytho文件 eg: 在settings包中创建一个文件——init——.py,对应的模块名为settings #使用 import 完整包名.模块名 eg:import settings.size #使用定义时需要前缀”包名.模块名“ from 完整包名 import 模块名 eg:from settings import size #使用时需要前缀”模块名.“
4、引用其他模块
-
主要包括标准模块和第三方模块
sys #python解释器及其环境操作 time #时间 os #操作系统服务功能 calender #日期 urllib #读取服务器的数据 json #json序列化和反序列化 re #正则表达式 math #运算函数 decimal #控制运算精度 shutil #高级文件操作,复制、移动、重命名 logging #记录事件、错误、警告、调试信息等日志信息 tkinter #GUI
浙公网安备 33010602011771号