与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视频采集,编码,打包发送等相关流程与相关模块的对应关系,为开发和快速定位问题提供参考。
在本篇“appfuse学习笔记(二)新建模块”中,我们将深入探讨AppFuse框架的模块创建过程。AppFuse是一个开源项目,它提供了一个快速开发Web应用的基础结构,旨在简化开发流程并提高代码质量。通过AppFuse,开发者...
1. **基础模块**:EV3编程的核心模块包括开始、结束、等待、重复和条件语句。开始模块标志着程序的起点,而结束模块则表示程序的结束。等待模块用于控制程序的执行速度,如等待一定时间或特定传感器事件。重复模块...
### FPGA学习笔记之嵌入式锁相环模块ALTPLL的配置和调用 #### 背景介绍 本文档基于Quartus II 13.0 SP1 (64-bit)、Modelsim SE-64 10.1c 和 DE2-70 开发板。目标是通过一个具体的实验来学习和初步使用锁相环(PLL)...
本笔记将深入探讨模块测试的概念、方法和最佳实践。 一、模块测试的定义与目标 模块测试,也称为单元测试,是对软件中的最小可测试单元进行检查,如函数、方法或类。其主要目标是验证模块的内部逻辑是否正确,接口...
使用场景及目标:①希望深入理解并熟练掌握Python中模块与包的基本概念和使用技巧的学习者;②遇到模块加载异常或包管理困难的技术人员可通过此文获得有效指导。 阅读建议:鉴于文档涉及较多实操知识点,请边读边...
交流测输出电压为380 220V,不平衡负载和平衡负载均可。 模型包含三相四桥臂逆变器、正负零序分量Park变、电压外环电流内环控制策略、3D-SVPWM模块、波形查看模块等。 另外自己也总结了搭建该模型的详细笔记,主要...
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包教包会系列笔记