模块
什么是模块:
一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀。
但其实import加载的模块分为四个通用类别:
1 使用python编写的代码(.py文件)
2 已被编译为共享库或DLL的C或C++扩展
3 包好一组模块的包
4 使用C编写并链接到python解释器的内置模块
为什么要使用模块
随着程序的发展,功能越来越多,为了方便管理,我们通常将程序分成一个个的文件,这样做程序的结构更清晰,方便管理。这时我们不仅仅可以把这些文件当做脚本去执行,还可以把他们当做模块来导入到其他的模块中,实现了功能的重复利用,
如何使用模块
1.import....
一个py文件就可以作为一个模块
模块的导入:直接导入文件的名字,不需要带着后缀
模块中的函数调用:模块名.函数名()
导入模块的时候做了三件事:1.首先开辟了一个新的命名空间my_moudle
2.执行了my_moudle内的代码
3.将my_moudle里面的名字和命名空间绑定在一起了
注意:模块在一个程序中只会被导入一次,不会重复导入(为了节约资源)那么,如何实现模块在程序中只会被导入一次呢?
当导入一个文件之后,会将模块存储在内存中,当再次导入的时候,就会到内存中查看是否导入过这个模块,如果已经导入过了,就不用再导入了。是通过sys里面的module方法
import sys for i in sys.modules: #查看是否导入过这个模块 print(i)
导入的模块有自己的命名空间(可以给导入的模块起一个别名,就产生了一个命名空间,这个命名空间只和别名相关)
import my_moudle as mm<br>print(mm.money)
1 #mysql.py 2 def sqlparse(): 3 print('from mysql sqlparse') 4 #oracle.py 5 def sqlparse(): 6 print('from oracle sqlparse') 7 8 #test.py 9 db_type=input('>>: ') 10 if db_type == 'mysql': 11 import mysql as db 12 elif db_type == 'oracle': 13 import oracle as db 14 15 db.sqlparse()