十九、模块和包

简介: 什么叫做包:简单点说就是带_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文件不能既当模块执行,又当脚本执行。

 

目录
相关文章
|
3月前
|
存储 XML Java
探索Java常用的包:从核心到扩展
探索Java常用的包:从核心到扩展
54 3
|
2月前
|
消息中间件 JSON 数据安全/隐私保护
`kombu`模块简介
`kombu`模块简介
|
4月前
|
人工智能 数据挖掘 Python
Python模块与包的管理与使用
Python作为一种广泛应用的编程语言,模块与包的管理与使用是其核心特性之一。本文将介绍Python中模块与包的概念,以及如何进行有效的管理和利用,帮助读者更好地理解和运用Python编程。
|
JSON 数据格式 Python
24.从入门到精通:__name__属性 dir() 函数 标准模块 包 从一个包中导入*
24.从入门到精通:__name__属性 dir() 函数 标准模块 包 从一个包中导入*
|
JavaScript
webpack原理篇(六十五):实战开发一个压缩构建资源为zip包的插件
webpack原理篇(六十五):实战开发一个压缩构建资源为zip包的插件
227 0
webpack原理篇(六十五):实战开发一个压缩构建资源为zip包的插件
|
程序员 Android开发 开发者
Android开发:往项目工程里面新引入工具包的步骤
在Android开发过程中,有些时候会根据实际需要,要往项目里面引入工具包,作为初级开发者或者刚开始入门的Android开发者来说会不太熟练怎么引入,所以往项目工程里面新引入工具包也是必备技能。那么本篇博文就来分享一下给项目工程里面引入工具包的步骤,只分享给有需要的人。
179 0
Android开发:往项目工程里面新引入工具包的步骤
|
JSON 数据格式 Python
Python基础 模块化编程(模块的导入) 模块化编程 模块以主程序的方式运行 包和目录 第三方库的安装和导入方法
python基础知识模块,模块化编程,模块的创建和导入 python基础,模块的创建和导入,让模块以主程序的方式运行,python中的包和目录的区别和创建。模块导入另一个包的模块的方法,导入带有包的模块时的注意事项,常见的内置模块。 第三方模块的安装和导入的方法
Python基础 模块化编程(模块的导入)   模块化编程 模块以主程序的方式运行 包和目录 第三方库的安装和导入方法
|
Python
Python语法之模块和包
这一节,我将为大家介绍模块和包: 在开发大型软件时,随着代码写的越来越多,如果将所有的代码都放在一个文件里,势必为以后的维护带来很大的困难。正如仓颉造字一样,仓颉是黄帝的史官,用祖传结绳记事的老办法记载史实。时间一长,那些大大小小,奇形怪状的绳结都记了些什么,连他自己也没法辨认了。于是,仓颉开始想新的办法,用什么方式可以帮助大家分辨清不同的事物,在仓颉的努力下,他创造了文字,解决了这个问题。而在 Python 中,为了编写易于维护的代码,我们会将代码拆分放到不同的文件里,这样每个文件包含的代码相对就会减少。在 Python 中,一个 .py 文件称为一个模块(Module)。
104 0
|
Python
Python编程:模块与包
Python编程:模块与包
FastAPI 学习之路(二十六)全局依赖项
FastAPI 学习之路(二十六)全局依赖项
FastAPI 学习之路(二十六)全局依赖项