Python基础19
模块的简介
1.模块
就是一系列功能的结合体
2.作用
节省时间,提高开发效率
3.模块来源
内置的
第三方的
自定义的
4.模块的存在形式
我们自己写的单个py文件
包:一系列模块的结合体,就是文件夹
import句式
1 import md 2 #import 模块名字,不加后缀名
首次导入文件,会执行导入文件代码
当如文件不管你导入几次都只执行一次
导入文件的过程发生的事
1. 运行执行文件,产生执行文件的全局名称空间
2. 运行导入文件,会产生导入文件的全局名称空间,把导入文件里面的名称空间都丢到全局名称空间去
3. 在执行文件中有一个变量名,指向导入文件的空间地址
4. 以后我们在执行文件中就可以运用刚才变量名来导出导入文件的名字
不会与执行文件发生名字冲突,指名道姓的取值
print(md.name)#打印出的是md文件里面的数据 money=999 print(money)#打印出执行文件的数据
from... import...句式
from md import money from md import read1 from md import change from md import money,read1,read2 # 连续导入
首次导入也会执行导入文件
导入多次,只会执行一次
发生的事
1. 运行执行文件,产生执行文件的全局名称空间
2. 运行导入文件md.py,产生md文件的全局名称空间,然后把md中所有的名字都丢到md的全局名称空间中
3.在执行文件中有一个变量money指向导入文件中money的空间地址
4.我们要想使用导入文件的money,直接用money即可,不使用md.money,此时,只是把导入文件的money导入到了执行文件,其他都没有
导入文件之后,就有可能发生执行文件中的名字和导入文件中的名字产生冲突,此时,会使用当前执行文件中的名字
导入模块的扩展用法
起别名
import test as t print(t.name)
连续导入
import md, time, os, sys import md import time import sys import o
通用导入
from md import money, read1, read2, change from md import * __all__=['money', 'read1']
判断文件类型
"""学习模块的时候,必须要清楚执行文件和导入文件""" 区分执行文件和导入文件 __name__:"__main__" print(__name__) # 该文件只想让他做执行文件,不让被导入使用,怎么办呢 def index(): print('from index') # index() if __name__ == '__main__': index()
循环导入
如果在你的程序里面出现了循环导入的问题,说明你的程序设计的不合理!
我们遇到循环导入的问题必须处理掉,否则代码会报错,不能正常运行
如何解决循环导入的问题
1. 把导入语句放到代码的最下面
虽然问题解决了,但是不推荐,我们一般把导入语句都放在文件的开头
2. 函数式
1. 先从内存中查找
2. 再从内置模块中查找
3. 从环境变量sys.path中查找(重要)
4. 如果以上都找不到,则报错!
sys.path列表中的第一个元素永远是:当前文件所在的路径
sys.path列表中的第二个元素是:项目的路径,他是pycharm给你加的
#如何解决自定义的模块查找不到的问题: #1. 把路径添加到sys.path中去 sys.path.append(r'D:\python26\day19\aaa') import m3 print(m3.name) #2. from 模块1.模块2.模块3 import...句式 from aaa.bbb.ddd import m3 print(m3.name)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY