`
jeffreydan
  • 浏览: 27183 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

python模块导入实践

阅读更多

在编程语言中,一般在语法上都支持代码模块化功能,使之降低耦合度和功能重用,python同样也支持。在python中,模块是以一个python文件 为单位加以封装,并支持以下2种常方式,供第三方使用模块成员。(下面分别说明时,我们假设存在以下python源文 件:main.py,logic.py,model.py且下面提到的当前全局空间是对应main.py)

一、import用法

我们可以通过以下代码导入模块至当前全局空间中(可以通过globals()查看)
import logic,model
使用上面的方法导入,在需要使用该模块内的成员(变量,方法,类...)时,需要从模块名出发直到被使用的成员,比如:logic.test()。我们可以把当前的全局空间布局假想成下图:

|...........|                           |.............|                 |.............|
|...........|                           |.............|                 |.............|
|...........|                           |.............|                 |.............|
|test    |                    <---------|logic        |                 |.............|
|...........|                           |model        |------->         |.............|
|...........|                           |.............|                 |.............|
|...........|                           |.............|                 |.............|
(module:logic)                           (module:main)                  (module:logic)

 通过import语句,将需要导入的模块在当前全局空间中添加一个标识(logic),它引用一个名叫logic的module。

二、from ... import ...用法

我们可以通过以下代码导入模块至当前全局空间中(可以通过globals()查看)
from logic import * 或者 from logic import test
from model import *或者 from model import  send
使用上面的方法导入,在需要使用该模块内的成员(变量,方法)时,可以直接使用该模块中的成员,比如:test()。我们可以把当前的全局空间布局假想成下图:

|.............|
|.............|
|.............|
|test         |
|send         |
|.............|
|.............|
(module:main)

 通过from ... import ...语句,将需要导入的模块成员直接复制一份成员标识至当前全局空间中,从而我们可以直接使用。

三、巧妙使用__all__内部变量

在本文之前,描叙了如何使用第三方模块内的成员,其中from ... import ...方式直接将模块成员复制到当前全局空间中,我们可以做如下假设:
在一个python源文件中引入多个模块,而被引入的模块中有成员重名现象,这样就会根据from ... import ... 的先后顺序相应执行,这样就会出现后导入成员的覆盖之前导入的,从而导致导入的成员不是我们想要的结果或者导致当前全局空间导入的成员出现冗余。
对于上述的问题,我们可以通过python的一个内部特殊的变量解决,如下这样编写:

__all__ = ["...","..."]#...表示需要导出的成员,这样就可以控制哪些成员在被导入时能使用的或被复制到导入的全局空间中。
 

 

分享到:
评论
1 楼 AppleRipe 2010-12-28  
重名的话可以
from A import B as C

例 from django.http import HttpResponse as rsp

相关推荐

    python模块源码

    本文将深入探讨Python模块的源码,包括它们的结构、使用方法、导入机制以及如何阅读和理解模块的内部实现。 一、Python模块的概念 Python模块是一个包含Python定义和语句的文件,其后缀通常是.py。通过模块,我们...

    第10.5节 使用__all__定义Python模块导入白名单.rar

    为实现这一目标,Python提供了一个特殊变量`__all__`,它允许我们定义模块导入的“白名单”。在本节中,我们将深入探讨如何使用`__all__`来精细化管理模块的导入行为。 首先,让我们了解`__all__`的基本用法。当一...

    易语言Python3.7模块.rar

    "text.py"和"python_e.pyd"是两个示例文件,"text.py"是Python源代码文件,展示了如何在Python中编写基本的文本处理程序,而"python_e.pyd"可能是经过编译后的Python模块,用于易语言环境中运行。 "说明.txt"文件则...

    关于python导入模块import与常见的模块详解

    Python模块导入机制是Python语言中重要的特性之一。它允许开发者将程序拆分为多个模块,便于代码的维护、重用和功能拓展。模块是一个包含Python定义和语句的文件,文件名即为模块名,并以.py作为扩展名。模块中可...

    Python模块开发与引用演示

    本资源“Python模块开发与引用演示”将引导你掌握如何创建、组织和使用自定义模块,从而提升你的Python编程效率。 首先,一个Python模块是一个包含Python定义和语句的文件,通常以`.py`为扩展名。在Python中,你...

    (完整word版)教会你所有的Python模块使用.pdf

    作为模块导入时,Python 会将模块中的定义导入到当前的语义表中,可以通过模块名访问模块中的函数和变量。 模块的定义可以包含函数定义、可执行语句和全局变量。函数定义是模块中的主要组成部分,可以导入到其他...

    Python语言程序设计实践教程-参考答案.rar

    5. **模块与导入**:Python通过模块来组织代码,import语句可以导入已有的模块,如math模块提供数学函数,os模块提供操作系统接口。 6. **类与对象**:Python是面向对象的语言,通过class关键字定义类,支持封装、...

    一组用于处理AUTOSARXML文件的python模块_Python_下载.zip

    用户可以通过下载并解压这个zip文件,将其中的Python模块导入到自己的项目中,以便对AUTOSARXML文件进行读取、分析或转换等操作。 在没有具体标签的情况下,我们可以根据主题推测这可能涉及到以下几个核心知识点: ...

    Python使用import导入本地脚本及导入模块的技巧总结

    在Python编程中,`import`语句是连接不同代码文件的...在实际开发中,遵循最佳实践,如避免全局`*`导入,使用`if __name__ == "__main__"`来分离测试代码,以及为模块和对象提供有意义的别名,都能极大地提升代码质量。

    python编程(从入门到实践).zip

    这些示例代码涵盖了各种实际问题的解决方案,如文件操作、异常处理、模块导入、网络编程等。你还可以跟随书中的指导,逐步修改和扩展这些代码,以增强你的编程能力。 此外,书中的项目部分将带你进行实战演练,可能...

    Python 中的 import 机制之实现远程导入模块

    在Python编程中,模块导入(import)是一种常用的技术,它允许我们在一个脚本或模块中使用其他模块中的代码。这样的机制极大地提高了代码的复用性和模块化,是Python编程的一个基础组成部分。在Python中,实现远程...

    完整图文版教程 优质的Python基础入门教程 讲解清晰 PPT课件 12、Python模块 (共55页).rar

    Python模块是Python编程中的一个重要概念,它允许我们将代码组织成逻辑单元,便于代码重用和管理。...通过本教程的55页PPT,你将能全面了解Python模块的各个方面,并能够熟练地在实践中应用这些知识。

    《Python编程:从入门到实践》源代码文件

    3. **模块与包**:了解如何导入和使用Python标准库和第三方库,以及如何创建自定义模块和包,理解`import`语句的工作原理。 4. **面向对象编程**:类和对象的概念,类的定义,属性和方法,继承、多态和封装等面向...

    Python-Pyekaboo通过PYTHONPATH变量实现劫持挂钩代理Python模块的概念验证程序

    **Python-Pyekaboo通过PYTHONPATH变量实现劫持挂钩代理Python模块的概念验证程序** 在Python编程中,`PYTHONPATH`环境变量起着至关重要的作用,它定义了Python解释器在寻找导入模块时的搜索路径。`Pyekaboo`是一个...

    Python程序设计基础实践教程.zip

    4. **模块**:Python模块是包含一系列相关函数和变量的文件,通过import语句导入到程序中使用,方便代码复用和模块化开发。 5. **面向对象编程**:Python支持面向对象编程,类是创建对象的蓝图,包含属性(变量)和...

    Python模块详解

    Python模块详解 Python是一种强大的、面向对象的编程语言,它具有丰富的内置库和大量的第三方模块,使得开发者可以轻松地实现各种功能。模块是Python代码的组织单元,它们封装了相关的函数、类和变量,便于代码重用...

    python模块调用误区.docx

    然而,在使用Python模块时,开发者常常会遇到一些误区,这可能导致代码的混乱和不易维护。本文将详细探讨这些误区以及如何正确地调用模块。 首先,我们来谈谈一个常见的错误做法:“`from module import *`”。这种...

    Python编程从入门到实践书本源代码文件.rar

    1. **基础语法**:Python的基础语法是学习的起点,包括变量、数据类型(如整型、浮点型、字符串、布尔型)、流程控制(如条件语句、循环结构)、函数定义和调用、模块导入等。通过阅读和运行这些代码,初学者可以...

    教会你所有的Python模块使用.doc

    在编写和使用Python模块时,应遵循良好的编程实践,比如保持模块职责单一、避免全局变量的过度使用,以及使用`import`语句来组织代码结构。这不仅有助于提高代码的可读性和可维护性,还能使得代码更容易被他人理解和...

    程序设计导论:Python语言实践

    5. **模块与导入**:Python通过模块(module)组织代码,import语句可以引入其他模块的功能。Python标准库提供了大量预定义模块,如math、os和sys等。 6. **面向对象编程**:Python是面向对象的语言,支持类(class...

Global site tag (gtag.js) - Google Analytics