Thirteen 模块.自定义模块
1、模块
what:一个py文件就是一个模块,一个模块是一些相关功能的集合体
why: 1)、减少重复代码,提高开发效率
2)、使得你的代码的组织结构更清晰,有条理
模块的划分:
1)内置模块 如:time、os、sys
2)拓展模块(第三方模块)pip
这个需要下载安装pip3 pip 安装的模块,第三方模块
beautiful soup、request、gevent 等
itchat 与微信相关的模块
3)自定义模块(自己写的模块)
2、自定义模块:
引用模块相当于执行这个模块 ps:重复导入会直接引用内存中已加载好的结果
模块被执行发生了三件事:
1)创建一个以被导入模块的名字命名的名称空间
2)自动执行模块中的代码(将模块中的所有内容加载到内存)
3)要想执行模块中的代码,必须通过模块名.的方式执行或者获取
#导入模块并执行 # 第一种方式 import 模块名 模块名.函数名() # 返回结果为模块名模块里面函数名()的结果,内存加载了模块名 # 第二种方式 好处:使用简单,坏处:调用同名变量时,后面会覆盖前面的 from 模块名 import 函数名 # 导入该模块的函数名 函数名() # 返回结果为模块名模块里面函数名()的结果,内存加载了函数名 # 第三种方式,一般不用 from 模块名 import * # 没有在导入模块中加 __all__['函数名','函数名']情况下 则导入模块名中所有的代码 from 模块名 import * # 如果导入的模块中加__all__['函数名','函数名']情况下 则导入all[]里面的函数
# 模块改名 import old_name as new_name # 1、模块名过长,引用不方便,给模块改名,简化引用 # 2、便于优化代码 db_sql = input('>>>') if db_sql == 'mysql': import mysql as db elif db_sql == 'orcle': import orcle as ab as.模块名 # 模块里面的函数一样时,可以统一接口 # 引用多个模块,标准的: import time import sys
4)文件有两个作用:
1)作为脚本,直接运行
2)作为模块供别人使用
3)__name__ == '__main__'可以作为一个项目的驱动文件用
在本文件运行__name__ == __main__,在其它文件调用的时候是文件名
3、模块的搜索路径:
寻找顺序:先内存中找——>built-in 内置模块——>sys.path找
print(sys.path) 返回一个列表,列表的第一个参数就是当前目录
要想引用别的路径的模块,先加载路径到当前模块里面sys.path.append('路径')
global 全局仅限于当前模块的变量
4、递归函数,会在内存空间不断开辟新的内存空间,直到内存占满为止(自己调用自己)
os 模块的三个知识点
import os def read(path,n): file_list = os.listdir(path) # 获取目录下所有文件和目录,通过列表返回 for file in file_list: file_path = os.path.join(path,file) # 将上级文件路径与文件拼接,返回文件路径 if os.path.isdir(file_path): # 判断是否是目录 print(' '*n,file) read(file_path,n+1) else: print(' '*n,file) read(path,0)


浙公网安备 33010602011771号