Python -- 模块基础,循环导入
off999 2024-11-26 07:19 31 浏览 0 评论
模块的基础
模块是一系列功能的集合体,而函数是某一个功能的集合体,因此模块可以看成是一堆函数的集合体。一个py文件内部就可以放一堆函数,因此一个py文件就可以看成一个模块。如果这个py文件的文件名为module.py,模块名则是module。
- 从普通的面条版到函数版,其实是在做:
- 封装代码,一个函数差不多2-40行代码
- 让不同功能的代码独立开来
- 为什么要用模块?
- 可以极大地提升开发效率
- 自定义模块,文件版Python中叫做模块,模块可以放多个函数,然后把很多各函数分成多个文件,一个模块具有大的功能。
- 模块的形式:
- 自定义模块
- 第三方库,需要自己下载,如requests
- 内置模块,直接用就行了,如time
- 文件夹板,在pyton中就叫做包
- 如何用模块一般我们使用import和from...import...导入模块
import与from...import
模块就是拿来用的,简化操作,我们不需要再重复开发相同的功能,拿来用就可以了
- import time
- 打开time文件
- 把time文件内的内容读入python解释器的内存,然后把文件内的名字放入特定的模块time的名称空间time.sleep(0)
- 使用‘time .sleep(0)'的时候,会去time模块的名称空间内部寻找time的方法
- 导入使用‘time.sleep(0)'就可以了优点:time里面有的就全拿到了缺点:占用内存比较大,必须得通过time出来
- from...import...
from time import sleep
- 打开time文件、
- 把time文件内的内容读入Python解释器的内存,然后把文件内的名字放入特定的模块time的名称空间
- 把sleep单独拿出来放入'import与from...import.py'的名称空间去了
sleep(0)
- 导入使用‘sleep(0)’就可以了
优点:直接使用sleep(0)就可以了,不用加前缀,代码更精简
缺点:只能拿到sleep,如果该文件定义了sleep参数,容易与当前执行文件中名称空间中的名字冲突
- 总结
相同点:
- 两者都会执行模块对应的文件,两者都会产生模块的名称空间
- 两者调用功能时,需要跑到定义时寻找作用域关系,与调用位置无关
不同点
- import需要加前缀;from...import...不需要加前缀
循环导入问题解决
例如:
我现在有m1和m2两个文件,然后m1需要找到m2的y;m2需要找到m1 的x,但是由于代码至上而下运行,m1中的x还没有生成;m2中的y也没有生成, 所以m1找不到m2的y;m2找不到m1的x,就造成了一个死循环
解决方案一:
导入之前让变量提前生成,但是又发现了一个新问题,会执行两次print print(__name__)
在当前执行文件内打印它为'__main__',在导入时打印它为文件名
解决方案二:
把需要导入的名字y封装到函数体内部。名字的执行顺序:内置--》全局--》局部,调用函数的时候才会用到y,调用函数之前,全局变量x已经生成了,m2能找到x,y就能够生成, m1就能找到y,问题就解决了模块的搜索路径
以后写项目会分成运行文件和模块文件,运行文件需要寻找这些模块的时候,是有顺序的
导入模块时查找模块的顺序是:
- 先从内存中已经导入的模块中寻找
- 内置的模块
- 环境变量中找
1.内存中有的: 运行过的
import time
import m1 # 在文件内找到的,保存在内存里了
# 删除了m1
time.sleep(10) # m1还是在内存里的
import m1 # 现在内存里找的
2.内置模块
import time
3.环境变量中(自定义)
import sys
print(sys.path)- 搜索路径以执行文件为准
Python文件的两种用途
- 以当做模块导入,模块文件
- 当做运行文件运行,运行文件
编写好的一个python文件可以有两种用途:
- 脚本,一个文件就是整个程序,用来被执行
- 模块,文件中存放着一堆功能,用来被导入使用
相关推荐
- 召唤系统游戏(召唤系统游戏排行)
-
亡灵进化专家:写的很不错了。猪脚可以用金属或骨头帮自己的亡灵进化升级挺有意思的。不过还没写完网游之审判:是英雄无敌类型的。不过写的很牛逼也写完了。推荐看看还有不死传说:虽然不是召唤的,主教是僵尸和吸血...
- w7系统怎么样(电脑w7系统怎么样)
-
有以下几点理由来分析为什么win7受欢迎1、Windows7有望受到企业用户认可微软目前的最大担心是:企业用户认为Windows7性能同Vista相差不大,因此不会出手购买。微软当初发布Vist...
- 无敌系统流小说(无敌系统流的小说)
-
《嫡女之花开富贵》作者:伊人睽睽简介祖父是镇国将军,贵不可言;外公是帝师,才名满天下;父母亲琴瑟和鸣,恩爱无双,无妾室插足;穿越为书香门第的嫡小姐,且无任何庶兄妹,慕兰音认为,她这一生,必将佳期如梦...
-
- 键盘上windows键是哪个键(电脑键盘上windows键是哪个)
-
一、台式机键盘。Windows键,简称“Winkey”或“Win键”,是在计算机键盘左下角Ctrl和Alt键之间的按键,台式机全尺寸键盘的主键盘区左下角和右下角各有一个,图案是MicrosoftWindows的视窗徽标。二、笔记...
-
2026-01-13 11:51 off999
-
- 桌面图标设置在哪打开(桌面图标从哪里调出)
-
1、首先来到电脑桌面,此时桌面没有任何图标,如下图所示。2、我们先右键单击任务栏,会出现工具栏,这时我们在下拉的选项里选择“快速启动”按钮。3、单击快速启动按钮后会出现如图所示情况,这时在电脑屏幕的左下方会显示很多快捷按钮,一般情况下单击快...
-
2026-01-13 10:51 off999
- windows如何进入启动项(怎么进入启动选项)
-
方法步骤如下:1.点击应用在Windows设置界面点击应用选项进入。2.选择启动在左侧分类中选择启动选项。3.点击开关点击软件后方的开关即可启动或关闭开机启动项。1、在Window的文件资...
- win11下载安装
-
一、允许安装软件1、首先点击左下角的开始按键,然后点击“settings”进入设置。2、然后点击设置中的“应用”选项。3、在点击左侧任务栏中的“应用和功能”。4、点击下拉栏,然后选择其中的“任何来源”...
- win7支持的最高配置(win7支持的最高配置是多少)
-
答案是支持win7的最高配置应该是i99900k加b365主板。 不过这套配置市面上价格偏高。这种机器比同等酷睿13代处理器的价格还要高至少一千元以上。而且就性能而言要超过i99900...
- 指令引用的内存不能为read(指令引用的0x0000000内存.该内存不能为read)
-
出现“指令引用内存不能为read”的错误可能有多种原因,包括软件冲突、驱动问题、内存质量问题等。以下是一些可能的解决方案:1.检查是否有软件冲突:尝试关闭可能冲突的软件,例如杀毒软件、优化软件等。2...
- hp1010打印机驱动程序(hp deskjet1010打印机驱动)
-
1.把光盘到电脑里然后打开光盘找到“setup.exe”双击运行。2.这里点击“不用了,谢谢,我喜欢CD安装”;下载的驱动也点这个。3.到这个一步有6个软件需要安装,不用点选直接下一步即可。4.同意服...
- 电脑黑屏怎么关机(电脑黑屏怎么关机不会伤硬盘)
-
开机按F8不动到高级选项出现在松手,选“最近一次的正确配置”回车修复,还不行按F8进入安全模式还原一下系统或重装系统(如果开机没反应,放一下电,重新插拔一下硬件,如果总是开不了机就检修一下去)。如果是...
- 应用程序无法启动0xc0000005
-
4、设备主板故障也会导致无信号,建议联系专业的维修人员上门检修。5、设备显卡手指边与手指边插槽接触不良,清理一下显卡的金手指边,重新插回去,重新固定住即可。应用程序错误0xc0000005解决方法如下...
- 移动硬盘分区方法详解(移动硬盘分区步骤)
-
1、进入管理页面将新买的移动硬盘插入计算机的USB接口,右击此电脑后选择管理。2、选择压缩卷在页面里选择“磁盘管理”,右击移动硬盘,选择“压缩卷”。3、输入压缩空间的大小输入压缩空间的大小,点击右下角...
- windows7副本不是正版影响使用吗
-
会经常弹出提示和安全警告,如果我们安装了一个非正版的windows系统,就会经常弹出此windows副本不是正版的提示,那么此windows副本不是正版有什么影响呢,其实除了视觉外,功能也会有影响。w...
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
python入门到脱坑 输入与输出—str()函数
-
宝塔面板如何添加免费waf防火墙?(宝塔面板开启https)
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
(新版)Python 分布式爬虫与 JS 逆向进阶实战吾爱分享
-
失业程序员复习python笔记——条件与循环
-
系统u盘安装(win11系统u盘安装)
-
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
