模块初识
一、模块的概念
1、什么是模块:一系列功能的集合体
2、定义模块:创建一个py文件就是一个模块,该py文件名就是模块名
模块的四种存在方式:
使用python编写的.py文件
包:一堆py文件的集合体
使用c编写并链接到python解释器的内置模块
已被编译为共享库或DLL的c或c++扩展
3、使用模块:在要使用模块的文件中,通过导入import 模块名 来导入模块
4、为什么要使用模块:
从文件级别组织代码,是同特性的功能能统一管理
可以使用系统或第三方模块(拿来主义),来提高开发效率
每一个文件都会产生自己的全局名称空间,且互相不影响
多次导入,只会编译执行模块一次,将其加载到内存,之后都是直接对名字的引用。
import module a = 8000 print(module.b())
二、起别名
# 在任何地方都可以导入模块 def fn(): global m2 import m2 print('>>>',m2.num) fn() print(m2.num)
1、通过as关键字可以给模块起别名:模块名一旦起别名,原模块名就不能够使用
# 1、可以简化模块名字 import mmmmmm2 as my_m2 print(my_m2.num) # 2、可以统一功能 cmd = input('数据库选择 1:mysql | 2:oracle:') if cmd == '1': # import mysql # mysql.excuse() import mysql as db else: # import oracle # oracle.excuse() import oracle as db db.excuse()
三、from导入
1、from 模块名 import 名字1,名字2,名字3
from m3 import a,b,_c # 指名道姓的可以导入以_开头的名字
2、通过*导入:可以将模块中的名字一并导入
from 模块名 import * 导入的是模块中的__all__这个列表 1、系统默认该列表不会收录_开头的名字 2、可以自定义__all__列表来规定外界通过*可以导入的名字 不建议直接导入*,因为可读性差,且极易出现变量名重名
from m3 import * print(a) a()
3、from导入起别名:一旦起别名,原名就不能再使用
from 模块名 import 名字1 as 别名1, 名字2 as 别名2
from m4 import aaaa as a, bbbb as b, cccc as c print(a) # 10 print(b) # 20 print(c) # 30
四、自行文件与模块的区别
1、主文件
import m5 print(m5.money()) from m5 import money money() print(money())
2、调用文件
print('m5:我被导入执行的') def money(): money=1000 print(money) return 123 # __name__: # 在py文件作为模块被使用时,__name__为模块名 # 在py文件自执行时,__name__为字符串'__main__' if __name__ == '__main__': print('m5:我是自执行的') else: print('m5:我是被导入执行的')