1、模块的定义:模块就是一系列功能的集合体,在python中,一个py文件就是一个模块,比如 module.py 其中module就是模块名。 在python中,模块的使用方式都是一样的,但其实细说的话,模块可以分为四个通用类别: 1 使用python编写的.py文件 2 已被编译为共享库或DLL的C或C++扩展 3 把一系列模块组织到一起的文件夹(注:文件夹下有一个__init__.py文件,该文件夹称之为包) 4 使用C编写并链接到python解释器的内置模块 2、使用模块: 2.1 使用import导入模块 #首次导入模块会发生三件事: 1、创建一个模块的名称空间。 2、执行模块对应文件,将产生的名字存放于1中的名称空间 3、在当前执行文件中拿到一个模块名,该模块名指向1的名称空间 这个名字和变量名没什么区别,都是‘第一类的’,且使用模块名+‘.’名字的方式 可以访问文件中定义的名字,执行文件名字与被导入模块中的名字来自 两个完全不同的地方。 ###之后导入相同的模块名,会直接引用直接的模块不会从新执行文件。 模块中功能的执行始终以自己的名称空间为准。 3、为模块起别名: 我么为了更便捷的使用可以为模块 赋予更简洁的模块名。 用 as 命令。 import spam as sm print(sm.money) sm.read1() engine=input('>>: ').strip() if engine == 'mysql': import mysql as db elif engine == 'oracle': import oracle as db db.parse() 二、使用模块之from ... import.... 1、from...import...的使用 格式: 1 from spam import read1,read2 2、from...import 与import的对比 #唯一的区别就是:使用from...import...则是将spam中的名字直接导入到当前的名称空间中,所以在当前名称空间中,直接使用名字就可以了、无需加前缀:spam. #from...import...的方式有好处也有坏处 好处:使用起来方便了 坏处:容易与当前执行文件中的名字冲突 三、模块的查找顺序是: 1、内存中已经加载的模块 2、内置模块 3、sys.path路径中包含的模块 注意的是!!!sys.path的第一个路径是当前执行文件所在的文件夹 import sys print('time' in sys.modules) import time time.sleep(2) print('time' in sys.modules) import sys sys.path.append(r'D:\code\SH_fullstack_s1\day14\dir1') import m1 m1.f1()