`
JackAndroid
  • 浏览: 136240 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

pythone 包和模块笔记

阅读更多

  与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的搜索路径中.

 

  1. 设置pythonpath路径,指向common所在路径.
  2. 动态设置sys.path的值.例如在ClassTest中添加如下代码
import sys
sys.path.append("..")

  对照目录可以发现common包刚好在ClassTest的上一级目录中,而上述代码的意思就是将当前路径(ClassTest所在路径)的上一级路径(common所在路径)添加到sys.path中来,从而保证python在搜索时能找到common下的domain.py文件。

 

 

 

 

 

 

 

 

  • 大小: 11.1 KB
分享到:
评论

相关推荐

    SAP SD 模块自学笔记2.doc

    在SAP SD模块中,Billing(计费)是销售流程中的关键部分,它与成本中心会计(CO)的利润分析(PA-Profitability ...通过深入理解和熟练掌握这些概念,SAP SD模块的学习者可以更好地支持企业的销售和盈利分析工作。

    Webrtc源码开发笔记1 —Webrtc视频编码打包流程模块图解.zip

    Webrtc源码开发笔记1 —Webrtc视频编码打包流程模块图解 梳理webrtc从transceiver到transport流程,从而宏观上了解webrtc视频采集,编码,打包发送等相关流程与相关模块的对应关系,为开发和快速定位问题提供参考。

    PS模块配置笔记

    PS模块配置笔记:深入了解与应用 PS(Project System)模块是SAP系统中用于项目管理和控制的核心组件,它帮助企业有效地管理项目的成本、进度和资源。本文档旨在分享PS模块配置的相关知识点,尤其聚焦于PS模块的...

    英飞凌IGBT模块应用笔记.pdf

    英飞凌IGBT模块应用笔记主要探讨了IGBT(绝缘栅双极晶体管)模块的使用和理解,包括其在电力电子系统中的重要参数、特性及其影响。IGBT是一种混合功率半导体器件,结合了MOSFET的高速度和BJT的大电流驱动能力,广泛...

    appfuse学习笔记(二)新建模块

    在本篇“appfuse学习笔记(二)新建模块”中,我们将深入探讨AppFuse框架的模块创建过程。AppFuse是一个开源项目,它提供了一个快速开发Web应用的基础结构,旨在简化开发流程并提高代码质量。通过AppFuse,开发者...

    FPGA学习笔记之嵌入式锁相环模块ALTPLL的配置和调用

    ### FPGA学习笔记之嵌入式锁相环模块ALTPLL的配置和调用 #### 背景介绍 本文档基于Quartus II 13.0 SP1 (64-bit)、Modelsim SE-64 10.1c 和 DE2-70 开发板。目标是通过一个具体的实验来学习和初步使用锁相环(PLL)...

    乐高EV3所有编程模块使用 学习笔记整理

    1. **基础模块**:EV3编程的核心模块包括开始、结束、等待、重复和条件语句。开始模块标志着程序的起点,而结束模块则表示程序的结束。等待模块用于控制程序的执行速度,如等待一定时间或特定传感器事件。重复模块...

    模块测试笔记1

    本笔记将深入探讨模块测试的概念、方法和最佳实践。 一、模块测试的定义与目标 模块测试,也称为单元测试,是对软件中的最小可测试单元进行检查,如函数、方法或类。其主要目标是验证模块的内部逻辑是否正确,接口...

    14Python time时间模块笔记 - 副本.md

    14Python time时间模块笔记 - 副本

    js模块编程学习笔记

    本篇笔记主要基于阮一峰的博客,探讨了两种常见的JS模块规范:CommonJS和AMD,以及如何使用require.js进行模块管理。 1. **CommonJS**:这是Node.js服务器端编程广泛采用的模块化标准。在CommonJS中,`require()`...

    在Debian 4.0rc3上编译内核2.6.24时加入Layer7模块笔记第二版.pdf

    在Debian 4.0rc3上编译内核2.6.24时加入Layer7模块笔记第二版.pdf

    Maven3实战笔记02项目需求和模块分析

    ### Maven3实战笔记02:项目需求和模块分析 在Maven3的实战学习中,第二部分着重于项目需求分析与模块划分,这是构建大型、复杂项目时的基础工作,能够帮助开发者更好地理解项目架构,合理分配资源,提高开发效率。...

    MLX90640开发笔记(完整十章20191012).pdf

    MLX90640开发笔记(三)工作流程和操作MLX90640的一般步骤 MLX90640开发笔记(四)损坏和不良像素的处理 MLX90640开发笔记(五)阵列插值-由32*24像素到512*384像素 MLX90640开发笔记(六)红外图像伪彩色编码 MLX...

    教导型组织模式二模块笔记整理.doc

    教导型组织模式二模块笔记整理.doc

    sympy模块使用笔记

    sympy模块使用笔记

    OpenCV学习笔记(C++版OpenCV学习笔记,主要包括基础模块和DNN模块)带详细注释源码!!!

    OpenCV的C++版本具有丰富的模块,其中基础模块和深度神经网络(DNN)模块是两个主要部分。本文将详细记录学习OpenCV基础模块和DNN模块的心得,其中包含大量的注释源码,以便于读者理解并应用到实际开发中。 基础...

    python pandas模块使用笔记

    python pandas模块使用笔记 包含可运行代码

    canvas包教包会系列笔记

    canvas包教包会系列笔记

    M051系列官方各功能模块学习笔记.rar

    《M051系列官方各功能模块学习笔记》是一份详尽且全面的资源,旨在帮助用户深入理解和熟练掌握M051系列微控制器的各项功能。M051系列是新唐科技(Nuvoton)推出的一系列基于ARM Cortex-M0内核的微控制器,它们在...

Global site tag (gtag.js) - Google Analytics