十九、模块和包

简介: 什么叫做包:简单点说就是带_init_.py文件的文件夹就是包。当我们去调用这个包的时候其实是优先执行了包里面的_init_文件。而包里面的其他的py文件就是模块 1.当我们需要直接调用某模块的时候,而又不确定可不可以直接调用时,可以这样操作 import sys print(sys.path) 查看这个列表的第一项,你当前所在的py文件的文件夹目录就是第一项,而这个文件夹目录下的模块和包就是你可以调用的。

什么叫做包:简单点说就是带_init_.py文件的文件夹就是包。当我们去调用这个包的时候其实是优先执行了包里面的_init_文件。而包里面的其他的py文件就是模块

1.当我们需要直接调用某模块的时候,而又不确定可不可以直接调用时,可以这样操作

import sys

print(sys.path)

查看这个列表的第一项,你当前所在的py文件的文件夹目录就是第一项,而这个文件夹目录下的模块和包就是你可以调用的。

2。模块和模块之间的互相调用时,只会调用一次,而不会发生重复调用,因为模块一旦被调用成功,就会加入到sys.modules这个字典中,也就是说你在调用模块时,首先python解释器会自动的去找sys.modules这个字典中有没有,有的化就直接用了,不会再去调用一次,所以说模块只会调用一次。

3.跨包调用问题,就是我他妈的纠结了很久的如何挎包调用模块,这他妈的个根本就做不到,我在这个地方纠结了大量的时间。现在我总算是明白了,现在我写出来提醒我自己,原因如下:

这是一个路径图,这里我想从c.py里面调用b.py  这是不可以的骚年,这样调用就是不行,别问为什么就是不行,python就是这么规定的,所以记住就行了!!!!!!

但是我就想执行啊怎么办呢。。

每当我们遇到这种问题的时候,我们要立马想起两个问题1    你所在的py文件的sys.path的第一个文件夹是什么    2   执行一个包的时候首先要执行这个包下面的_init_文件  。骚年你记住了吗 这两个东西????

去哦们扯了半天还是没有说该怎么办。。。。我现在就来告诉你!!!!这时候我们仔细观察,发现c.py和b.py分别在mode3 和mode2里面 而这两个包又都在mode1里面   这时候我们只能,对就是只能,只能在和mode1同级别的py文件里面通过执行一系列的关系来让c.py执行b.py。至于具体怎么操作,很简单,就是在每个包里面的_init_文件里写一些调用模块就行了。

4.绝对路径的模块调用,写法就是在每个包的ini文件里面写清楚调用模块的路径方式,然后到和包同一目录下的py文件里面去执行,但是这样有问题比如说上图中的,mode1的路径发生变化,所有包的init文件里面的路径都要改,所以就有了相对路径的调用。

5。相对路径的调用,就是和绝对路径的写法是一样的就是把当前py文件的目录换成 . 父目录换成.. 就行了,还有就是前面说的跨目录调用问题,也是只能在外面实现,原因是因为一个py文件不能既当模块执行,又当脚本执行。

 

目录
相关文章
|
2月前
|
人工智能 小程序
寻找 2300 名编程青铜一起写代码,学会就送包!
邀请你一起进入通义灵码 AI 编程 PlayGround,这里可以是你的游乐园, 也可以是你的操练场,通过本次活动学会使用通义灵码的前 2300 名新用户,都将获得限量灵码帆布包一个。快开始尝试并享受编程的乐趣吧!
|
4月前
|
开发者 Python
30天拿下Python之模块和包
30天拿下Python之模块和包
26 2
|
8月前
|
Python
小甲鱼 模块与包 中 笔记
小甲鱼 模块与包 中 笔记
77 0
|
Python
Python程序结构:模块和包的组织与导入
Python程序结构:模块和包的组织与导入
135 0
|
前端开发
DSP开发软件css(10)使用基础(汉化、工程导入、设置目标配置文件、选择仿真器和芯片型号、添加文件|库路径、编译下载等操作)
DSP开发软件css(10)使用基础(汉化、工程导入、设置目标配置文件、选择仿真器和芯片型号、添加文件|库路径、编译下载等操作)
201 0
|
机器学习/深度学习 数据可视化 数据挖掘
深度之眼(十四)——Python:文件、异常和模块(下)
深度之眼(十四)——Python:文件、异常和模块(下)
112 0
深度之眼(十四)——Python:文件、异常和模块(下)
|
存储 JSON 编解码
深度之眼(十四)——Python:文件、异常和模块
深度之眼(十四)——Python:文件、异常和模块
163 0
深度之眼(十四)——Python:文件、异常和模块
|
Python
【Python零基础入门篇 · 17】:模块、模块的使用、过滤执行代码写法、包的使用
【Python零基础入门篇 · 17】:模块、模块的使用、过滤执行代码写法、包的使用
112 0
【Python零基础入门篇 · 17】:模块、模块的使用、过滤执行代码写法、包的使用
|
Python
【Python零基础入门篇 · 13】:模块、模块的使用、过滤执行代码写法、包的使用
【Python零基础入门篇 · 13】:模块、模块的使用、过滤执行代码写法、包的使用
706 0
【Python零基础入门篇 · 13】:模块、模块的使用、过滤执行代码写法、包的使用
|
JSON 数据格式 Python
Python基础 模块化编程(模块的导入) 模块化编程 模块以主程序的方式运行 包和目录 第三方库的安装和导入方法
python基础知识模块,模块化编程,模块的创建和导入 python基础,模块的创建和导入,让模块以主程序的方式运行,python中的包和目录的区别和创建。模块导入另一个包的模块的方法,导入带有包的模块时的注意事项,常见的内置模块。 第三方模块的安装和导入的方法
Python基础 模块化编程(模块的导入)   模块化编程 模块以主程序的方式运行 包和目录 第三方库的安装和导入方法