模块的定义与分类
什么是模块
模块的分类
模块的运行方式(py文件)
__name__
属性的使用
__name__
是固定的字符串:__main__
__name__
就是本模块的名字__name__
进行判断,决定是否执行可执行语句,开发阶段就执行,使用阶段就不执行if __name__ == '__main__':
(要执行的函数)
import
当引用模块的时候,实际上将该模块执行了一遍,加载到内存(只有在第一次引用的时侯,才将此模块加载到内存)
第一次导入模块发生的三件事
被导入模块有独立的名称空间
为模块起别名
import contextlib as cb
导入多个模块
import time,os,sys #不推荐
import time
import os
import sys
from ... import ...
from tb import name
#相当于从tb模块的全局空间中将name,变量与值的对应关系复制到了当前执行文#件的全局名称空间中
from ... import * (控制成员被导入)
from tb import *
与__all__
配合使用
__all__
是一个列表,用于表示本模块可以被外届使用的成员,元素是成员名放入字符串__all__
只对from xxx import * 这种导入生效__all__ = ['name', 'read1', 'read2']#被引用模块开头
import xxx 与from xxx import *的区别
import在使用其中成员时,必须使用模块名作为前缀;不容易产生冲突
from... 在使用其中成员时,不用使用模块名作为前缀,直接使用成员名即可;但容易产生命名冲突。后面定义的同名成员把前面的覆盖了
解决名称冲突的问题
模块的搜索路径
import sys
sys.path.append(r'模块路径')
原文:https://www.cnblogs.com/xiaohei-chen/p/11984632.html