python脚本之家 包的创建和调用_python基础之包的导入和__init__.py的介绍
调用同级目录:
– src
|– mod.py
|– test.py
若在程序test.py中导入模块mod, 则直接使用
import mod
或
from mod import *
调用子目录下的模块:
– src
|– mod.py
|– lib
| |– mod2.py
|– test.py
from lib.mod2 import *
或
import lib.mod2
调用上级目录下的文件
目录结构如下:
– src
|– mod.py
|– lib
| |– mod2.py
|– sub
| |– test2.py
import sys
sys.path.append('C:\\test\\A\\C')
import mod
import lib.mod2
__init__.py
在python模块的每一个包中,都有一个__init__.py文件(这个文件定义了包的属性和方法)然后是一些模块文件和子目录,假如子目录中也有__init__.py 那么它就是这个包的子包了。当你将一个包作为模块导入(比如从 xml 导入 dom )的时候,实际上导入了它的__init__.py 文件。
一个包是一个带有特殊文件 __init__.py 的目录。__init__.py 文件定义了包的属性和方法。其实它可以什么也不定义;可以只是一个空文件,但是必须存在。如果 __init__.py 不存在,这个目录就仅仅是一个目录,而不是一个包,它就不能被导入或者包含其它的模块和嵌套包。
__init__.py 中还有一个重要的变量,叫做__all__。
如果此时目录如下
– src
|– mod.py
|– lib
| |– mod2.py
| |– mod3.py
| |– sub
| |– | |– mod3.py
我们有时会使出一招“全部导入”,也就是这样:
from lib import *
这时 import 就会把注册在包__init__.py 文件中 __all__ 列表中的子模块和子包导入到当前作用域中来。比如:
#文件__init__.py
__all__ = ["mod2", "mod3", "sub"]
总结:
对于其余路径下载py文件,要想导入,先加到sys.path中,然后再导入。
__init__.py的作用:
package的标识,不能删除
定义package中的__all__,用来模糊导入
编写Python代码(不建议在__init__中写python模块,可以在包中在创建另外的模块来写,尽量保证__init__.py简单)
总结
以上所述是小编给大家介绍的python基础之包的导入和__init__.py的介绍,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
python脚本之家 包的创建和调用_python基础之包的导入和__init__.py的介绍相关推荐
- arcgis python脚本之家_arcgis中Python脚本的使用
[初学入门]ArcGIS中Python脚本的使用 By:飞天小猪 目录 写在前面的话 (2) 前言 (2) 一.PYTHON语言基础 (3) 1数学运算符 (3) 2字符串操作 (4) 3模块的使用( ...
- python解析pcap包已text格式输出_python分析pcap包
前两天需要分析一个pcap包,写了一段python脚本,将每个包的基本信息(源/目的MAC.源/目的IP.源/目的端口)提取出来. 在实现过程中为了省事用了dpkt开发包,不过只用了几个简单的函数,具 ...
- c调用python脚本如何获取结果_使用C++调用Python代码的方法详解
一.配置python环境问题 1.首先安装Python(版本无所谓),安装的时候选的添加python路径到环境变量中 安装之后的文件夹如下所示: 2.在VS中配置环境和库 右击项目->属性-&g ...
- python 函数递归一次增加一次变量_python基础之函数、返回值,局部变量、全局变量,递归(继续补充不定长参数)...
1.python中函数定义:函数是逻辑结构化和过程化的一种编程方法.(完成某一种特定的功能) def test02(): #"" msg = 'hello WuDaLang' re ...
- python定义一个student类、有下面的_Python基础(小白教程)之面向对象
原标题:Python基础(小白教程)之面向对象 Python的类 > 在这门语言中,类使用 class 语句来定义.在类中包含了一系列语句,比如赋值语句,def 定义函数等.从面向对象的角度看, ...
- python 对话框的创建及调用_Python 使用 PyQt 自定义对话框
作者:ZephyrHou / 欢迎交流学习!!! 在使用 PyQt 进行操作时,内置的窗口往往不能满足我们的需求,所以有时候我们需要自定义一个对话框来满足我们的需要. 1. 在使用前先导入需要用到的库 ...
- python创建文件对象_python基础教程:文件读写
在Linux系统中,一切都是文件.但我们通常说的文件是保存在磁盘上的图片.文档.数据.程序等等.而在程序的IO操作中,很多时候就是从磁盘读写文件.本节我们讲解Python中的文件对象如何操作文件. 创 ...
- python元祖封包_Python基础——解包与封包
1.python封包 将多个值赋值给一个变量时,Python会自动将这些值封装成元组,这个特性称之为封包 a = 1,2,3 print(a,type(a)) 返回 (1, 2, 3) 当函数返回多个 ...
- python复数的实部和虚部的数字类型_Python基础:数据类型-数字(5)
在Python中,所有的数据类型都是类,每一个变量都是类的实例. Python中有6种标准数据类型:数字(Number).字符串(String).列表(List).元组(Tuple).集合(Sets) ...
最新文章
- php 图片印章_PHP实现中文圆形印章特效_PHP
- TensorFlow2快速模型构建及tensorboard初体验
- 安卓模拟器安装过程记录 20200926
- c语言作业的分析,C语言作业分析.doc
- 为什么有人说手机很少有白色的出现了?
- 项目中的常量是放在接口里还是放在类里呢?
- 芯片介绍:CC2530
- 手把手教你迁移微信小程序到 QQ 浏览器
- JAVA面向对象的三大特性
- 网络虚拟化中的 offload 技术:LSO/LRO、GSO/GRO、TSO/UFO、VXLAN
- 思科:DHCP,动态获取IP地址
- 我看朴灵评注阮一峰的《JavaScript 运行机制详解:再谈Event Loop》
- YOLO3-WIN10-GPU版配置详细教程
- oracle如果为0显示为1,解决Oracle的数值0.1只显示成.1问题
- js 根据身份证获取出生日期与年龄
- wps怎么转换成jpg格式?
- redis实现高并发投票网站
- Bot 崛起:你的企业需要考虑这11个重要问题
- CSDN豪华盲盒, 一发入魂直接获得iPhone13, 请叫我欧皇 !
- 第55篇 Chrome扩展USB开发(一)及PHP研究 Saturday