调用同级目录:

– 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的介绍相关推荐

  1. arcgis python脚本之家_arcgis中Python脚本的使用

    [初学入门]ArcGIS中Python脚本的使用 By:飞天小猪 目录 写在前面的话 (2) 前言 (2) 一.PYTHON语言基础 (3) 1数学运算符 (3) 2字符串操作 (4) 3模块的使用( ...

  2. python解析pcap包已text格式输出_python分析pcap包

    前两天需要分析一个pcap包,写了一段python脚本,将每个包的基本信息(源/目的MAC.源/目的IP.源/目的端口)提取出来. 在实现过程中为了省事用了dpkt开发包,不过只用了几个简单的函数,具 ...

  3. c调用python脚本如何获取结果_使用C++调用Python代码的方法详解

    一.配置python环境问题 1.首先安装Python(版本无所谓),安装的时候选的添加python路径到环境变量中 安装之后的文件夹如下所示: 2.在VS中配置环境和库 右击项目->属性-&g ...

  4. python 函数递归一次增加一次变量_python基础之函数、返回值,局部变量、全局变量,递归(继续补充不定长参数)...

    1.python中函数定义:函数是逻辑结构化和过程化的一种编程方法.(完成某一种特定的功能) def test02(): #"" msg = 'hello WuDaLang' re ...

  5. python定义一个student类、有下面的_Python基础(小白教程)之面向对象

    原标题:Python基础(小白教程)之面向对象 Python的类 > 在这门语言中,类使用 class 语句来定义.在类中包含了一系列语句,比如赋值语句,def 定义函数等.从面向对象的角度看, ...

  6. python 对话框的创建及调用_Python 使用 PyQt 自定义对话框

    作者:ZephyrHou / 欢迎交流学习!!! 在使用 PyQt 进行操作时,内置的窗口往往不能满足我们的需求,所以有时候我们需要自定义一个对话框来满足我们的需要. 1. 在使用前先导入需要用到的库 ...

  7. python创建文件对象_python基础教程:文件读写

    在Linux系统中,一切都是文件.但我们通常说的文件是保存在磁盘上的图片.文档.数据.程序等等.而在程序的IO操作中,很多时候就是从磁盘读写文件.本节我们讲解Python中的文件对象如何操作文件. 创 ...

  8. python元祖封包_Python基础——解包与封包

    1.python封包 将多个值赋值给一个变量时,Python会自动将这些值封装成元组,这个特性称之为封包 a = 1,2,3 print(a,type(a)) 返回 (1, 2, 3) 当函数返回多个 ...

  9. python复数的实部和虚部的数字类型_Python基础:数据类型-数字(5)

    在Python中,所有的数据类型都是类,每一个变量都是类的实例. Python中有6种标准数据类型:数字(Number).字符串(String).列表(List).元组(Tuple).集合(Sets) ...

最新文章

  1. php 图片印章_PHP实现中文圆形印章特效_PHP
  2. TensorFlow2快速模型构建及tensorboard初体验
  3. 安卓模拟器安装过程记录 20200926
  4. c语言作业的分析,C语言作业分析.doc
  5. 为什么有人说手机很少有白色的出现了?
  6. 项目中的常量是放在接口里还是放在类里呢?
  7. 芯片介绍:CC2530
  8. 手把手教你迁移微信小程序到 QQ 浏览器
  9. JAVA面向对象的三大特性
  10. 网络虚拟化中的 offload 技术:LSO/LRO、GSO/GRO、TSO/UFO、VXLAN
  11. 思科:DHCP,动态获取IP地址
  12. 我看朴灵评注阮一峰的《JavaScript 运行机制详解:再谈Event Loop》
  13. YOLO3-WIN10-GPU版配置详细教程
  14. oracle如果为0显示为1,解决Oracle的数值0.1只显示成.1问题
  15. js 根据身份证获取出生日期与年龄
  16. wps怎么转换成jpg格式?
  17. redis实现高并发投票网站
  18. Bot 崛起:你的企业需要考虑这11个重要问题
  19. CSDN豪华盲盒, 一发入魂直接获得iPhone13, 请叫我欧皇 !
  20. 第55篇 Chrome扩展USB开发(一)及PHP研究 Saturday

热门文章

  1. springcloud gateway 自定义 accesslog elk
  2. PostgreSQL创建数据库报错
  3. 基于Docker方式实现Elasticsearch集群
  4. 小程序 mpvue 使用canvas绘制环形图表
  5. hapi 获取 请求地址 url
  6. lambda写法(多参数)
  7. MySQL实现当前数据表的所有时间都增加或减少指定的时间间隔
  8. android webview 长按菜单拦截,javascript-在Android上长按时禁用上下文菜单
  9. windows 2502 2503 错误解决
  10. leetcode350C++