常用模块-使用方法
模块:
什么是模块:一个.py文件就是模块,节省代码,容易维护,组织结构更清晰
模块的运行方式:
脚本方式:直接用解释器执行,或者pycharm中右键运行。
模块方式:被其他的模块导入,为导入他的模块提供资源(变量,函数定义,)
模块的分类:
内置模块:标准库,python解释器自带的,time,os,sys,等等200多种
第三方库(模块):各种大神写的模块,通过pip install…安装的6000多种
自己写的模块,自定义模块
引用模块发生三件事:
1,import tbjx 将haiyang.py文件(变量,函数名)加载到内存
2,在内存中创建一个以太tbjx命名的名称空间
3,通过haiyang.xx名称空间的名字.等方式引用此模块的名字(变量,函数名)
引用多个模块:
import os
import sys #引用多个模块时,要逐行引用
import haiyang:
当我引用tbjx模块的时候,实际上将tbjx.py执行一遍,加载到内存
通过import引用的模块,他有自己的独立名称空间,与当前执行文件没有关系。
执行文件:02 模块 import
被引用文件(模块):haiyang.py
为模块起别名:
import haiyang as ab
print(ab.name)
from haiyang import *:
示例1:被引用文件(模块)all进行限制引用者使用范围
引用者:
from haiyang import *
模块:
__all__ = ['name']
name = "huhaiyang"
工作中错误示例:
from haiyang import name:
from haiyang import *
相当于从haiyang模块的全局空间中将name变量与值得对应关系,复制到当前执行文件的全局空间中
引用模块中的函数,如果此函数修改一些变量,这些变量还是从此模块中寻找,不会改变当前执行文件变量
优点:调用更方便
缺点:引用变量跟当前文件变量冲突
py文件的两种功能:
1.py文件的第一个功能:执行文件(承载代码)脚本
直接打印__name__
返回__main__
2.py文件的第二个功能:模块(被动执行文件)
直接打印__name__
返回模块名
作用:当你在被执行文件中,引用模块后,返回的是模块名,模块中进行了if __name__ == '__main__':
判断的话,被执行者是不会执行此函数(控制函数自动调用),模块中可以进行测试代码
寻找一个模块的路径:
内存中 >>> 内置模块 >>> sys.path
只要这三个地方存在,就可以进行加载这个模块
不同目录加载模块;
将路径加载到sys.path中,以绝对路径导入。
-
import sys sys.path.append(r'E:\Python-学习\') import haiyang print(haiyang.name)