与java一样,python也提供package的概念来管理命名空间重复的问题。不同的是,java的package其实就是一个目录,而python的package则会多一个__init__.py的文件。
python提供关键字import来管理package和module,不过python中import只能引入package或者module,而无法像java一样引入类.
python中对.py的查找主要根据sys.path来进行,一般情况都是将当前python目录作为第一路径,所以依次查找PYTHONEPAHTB变量内包含的路径.(可直接print(sys.path)来查看具体的内容)
python执行import package时,其实是在执行package目录下对应的__init__.py文件,由于默认生成文件内没有任何内容,因此单独导入package毫无用处.
不过既然是执行__init__.py文件,就可以通过在该文件内编写import module的方式来导入package下对应的module.如果嫌一个个import module麻烦,就可以利用__all__来设置所需导入的module.例如:
__all__=['module1','module2']
来个例子:
例如当前的python代码目录如下:
其中:
ch1,common是package.
Shape,Domain是module。
如果需要在相同package下的module中引入各自的类,例如在ClassTest中引入Shape下Point类,只需采用如下代码:
from Shape import Point
f=Point(100,200)
如果需要在不同的package下module中引入各自的类,例如在ClassTest中引入Domain下Money类,这稍微有点麻烦,原因是在ClassTest对应的python搜索路径中并不包含common包说在路径。因此需要将common包所在路径设置到python的搜索路径中.
- 设置pythonpath路径,指向common所在路径.
- 动态设置sys.path的值.例如在ClassTest中添加如下代码
import sys
sys.path.append("..")
对照目录可以发现common包刚好在ClassTest的上一级目录中,而上述代码的意思就是将当前路径(ClassTest所在路径)的上一级路径(common所在路径)添加到sys.path中来,从而保证python在搜索时能找到common下的domain.py文件。
- 大小: 11.1 KB
分享到:
相关推荐
在SAP SD模块中,Billing(计费)是销售流程中的关键部分,它与成本中心会计(CO)的利润分析(PA-Profitability ...通过深入理解和熟练掌握这些概念,SAP SD模块的学习者可以更好地支持企业的销售和盈利分析工作。
Webrtc源码开发笔记1 —Webrtc视频编码打包流程模块图解 梳理webrtc从transceiver到transport流程,从而宏观上了解webrtc视频采集,编码,打包发送等相关流程与相关模块的对应关系,为开发和快速定位问题提供参考。
PS模块配置笔记:深入了解与应用 PS(Project System)模块是SAP系统中用于项目管理和控制的核心组件,它帮助企业有效地管理项目的成本、进度和资源。本文档旨在分享PS模块配置的相关知识点,尤其聚焦于PS模块的...
英飞凌IGBT模块应用笔记主要探讨了IGBT(绝缘栅双极晶体管)模块的使用和理解,包括其在电力电子系统中的重要参数、特性及其影响。IGBT是一种混合功率半导体器件,结合了MOSFET的高速度和BJT的大电流驱动能力,广泛...
在本篇“appfuse学习笔记(二)新建模块”中,我们将深入探讨AppFuse框架的模块创建过程。AppFuse是一个开源项目,它提供了一个快速开发Web应用的基础结构,旨在简化开发流程并提高代码质量。通过AppFuse,开发者...
### FPGA学习笔记之嵌入式锁相环模块ALTPLL的配置和调用 #### 背景介绍 本文档基于Quartus II 13.0 SP1 (64-bit)、Modelsim SE-64 10.1c 和 DE2-70 开发板。目标是通过一个具体的实验来学习和初步使用锁相环(PLL)...
1. **基础模块**:EV3编程的核心模块包括开始、结束、等待、重复和条件语句。开始模块标志着程序的起点,而结束模块则表示程序的结束。等待模块用于控制程序的执行速度,如等待一定时间或特定传感器事件。重复模块...
本笔记将深入探讨模块测试的概念、方法和最佳实践。 一、模块测试的定义与目标 模块测试,也称为单元测试,是对软件中的最小可测试单元进行检查,如函数、方法或类。其主要目标是验证模块的内部逻辑是否正确,接口...
14Python time时间模块笔记 - 副本
本篇笔记主要基于阮一峰的博客,探讨了两种常见的JS模块规范:CommonJS和AMD,以及如何使用require.js进行模块管理。 1. **CommonJS**:这是Node.js服务器端编程广泛采用的模块化标准。在CommonJS中,`require()`...
在Debian 4.0rc3上编译内核2.6.24时加入Layer7模块笔记第二版.pdf
### Maven3实战笔记02:项目需求和模块分析 在Maven3的实战学习中,第二部分着重于项目需求分析与模块划分,这是构建大型、复杂项目时的基础工作,能够帮助开发者更好地理解项目架构,合理分配资源,提高开发效率。...
MLX90640开发笔记(三)工作流程和操作MLX90640的一般步骤 MLX90640开发笔记(四)损坏和不良像素的处理 MLX90640开发笔记(五)阵列插值-由32*24像素到512*384像素 MLX90640开发笔记(六)红外图像伪彩色编码 MLX...
教导型组织模式二模块笔记整理.doc
sympy模块使用笔记
OpenCV的C++版本具有丰富的模块,其中基础模块和深度神经网络(DNN)模块是两个主要部分。本文将详细记录学习OpenCV基础模块和DNN模块的心得,其中包含大量的注释源码,以便于读者理解并应用到实际开发中。 基础...
python pandas模块使用笔记 包含可运行代码
canvas包教包会系列笔记
《M051系列官方各功能模块学习笔记》是一份详尽且全面的资源,旨在帮助用户深入理解和熟练掌握M051系列微控制器的各项功能。M051系列是新唐科技(Nuvoton)推出的一系列基于ARM Cortex-M0内核的微控制器,它们在...