`

python 模块定义、导入、优化详解

阅读更多
python 模块定义、导入、优化详解

一、定义


模块:用来从逻辑上组织 python 代码(变量,函数,类, 逻辑:实现一个功能),本质就是 .py 结尾的 python文件(例如:test.py文件,对应的模块名:test)
包:用来从逻辑上组织模块的,本质就是一个目录(必须带有一个 __init__.py 文件)


二、导入方法


# 导入单个模块
import module_name


# 一次导入多个模块
import module1_name,module2_name


# 从module_a模块导入其所有代码
from module_a import *


# 从module_a模块导入多个变量/函数/类
from module_a import m1,m2,m3


# 给logger模块取别名为logger1并导入
from module_a import logger as logger1


# 从当前目录下导入test1模块
from . import test1 


三、Import本质(路径搜索和搜索路径)

导入整个模块 = 导入整个模块中全部的代码
import test   test = “test.py all code”

导入模块中的某个变量或函数 = 只导入该变量或函数,可直接调用
   from test import m1    m1 = “code”

导入模块(需要先找到)----> 模块对应的python文件 ----> 该python文件的路径 ----> 可用 sys.path 方法获取路径
   import module ----> module_name.py ----> module_name.py 的路径 ----> sys.path

导入包的本质就是执行该包下的__init__.py文件


四、同级导入模块

假设,有一个名为 module_test 的目录,该目录下包含一个 module.py 文件和一个 main_module.py 文件。
main_module.py 文件中需要调用 module 模块

如果当前脚本文件中已经定义了logger()函数,这时要调用的 module.py 文件中又
已经包含了一个同名的 logger() 函数,则调用 logger() 函数时会产生冲突,故为了避免冲突,此方法要慎用。

如何避免这种冲突呢?我们可以使用另一种导入方法,即给 logger 函数取别名:from module import logger as logger1   


五、不同级导入模块
路径为 day5\module_test\main_module1.py 的 main_module1.py文件导入其父级目录 day5目录下的 module1 模块(即day5\module1.py)
dirname作用是返回上级目录名,两层dirname代表返回上上级目录,即返回到了day5目录; os.path.abspath(__file__)是打印当前绝对路径

x = os.path.dirname( os.path.dirname( os.path.abspath(__file__) ) )
# 添加路径,再导入module1 模块(day5\module1.py)
sys.path.append(x)
import module1
print(module1.name)
module1.say_hello() 

六、导入优化

导入模块中指定的函数
from __init__ import test
分享到:
评论

相关推荐

    第五周-第04章节-Python3.5-模块定义、导入、优化详解2.avi

    第五周-第04章节-Python3.5-模块定义、导入、优化详解2.avi

    第五周-第03章节-Python3.5-模块定义、导入、优化详解1.avi

    第五周-第03章节-Python3.5-模块定义、导入、优化详解1.avi

    Python3导入自定义模块的三种方法详解

    在Python编程中,模块是代码组织的基本单位,它包含了可重用的函数、类和其他定义。模块化编程有助于代码的可读性和可维护性。在Python3中,有三种主要的方式来导入自定义模块,让我们详细地探讨每一种方法: 1. **...

    python模块详解哦

    Python模块是Python编程中的一个重要概念,它允许我们将代码组织成逻辑单元,以便于重用和管理。理解Python模块是深入学习Python编程的关键步骤之一。在Python中,一个模块可以是一个包含Python定义和语句的文件,...

    Python-blackbox一个用于并行优化黑盒子函数的Python模块

    `Python-blackbox` 是一个专门设计用于解决黑盒函数优化问题的Python模块。在优化领域,黑盒函数是指我们只知道其输入和输出,但对其内部工作机制一无所知的函数。这类函数的优化通常依赖于算法的探索性能力,因为...

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

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

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

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

    Python模块详解

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

    Python自动重新加载模块详解(autoreload module)

    `autoreload`机制的核心思想是在后台持续监控所有已导入的Python模块文件,并在检测到任何更改时自动重启程序。这种方法极大地简化了开发流程,使得开发者能够更快地看到代码修改的效果,提高开发效率。 #### 二、...

    Python模块文件结构代码详解

    Python模块是组织代码的基本单位,它们允许我们封装相关的函数、类和变量,便于代码的重用和管理...在实践中,不断探索和学习Python模块的更高级特性,如包(package)、导入机制等,将有助于提升编程效率和代码质量。

    python模块添加

    ### Python模块添加详解 在Python编程中,模块的管理和导入是一项基本且重要的技能。通过合理的模块组织和导入,可以提高代码的可读性、可维护性和重用性。本文将根据给定的文件内容,深入解析如何在Python中添加和...

    Python模块搜索路径代码详解

    Python模块搜索路径代码详解的知识点主要有以下几个方面: 1. Python模块搜索路径概念:当使用import语句导入模块时,Python解释器会首先查找内置模块,如果没有找到,就会在sys.path变量给出的目录列表中搜索。sys...

    python导入模块的两种方式.docx

    ### Python导入模块的两种方式详解 #### 模块的概念与作用 在Python编程中,随着项目的逐渐扩大,将代码组织成模块变得尤为重要。模块是一种封装了相关功能的Python文件,它可以帮助开发者更好地管理代码,避免代码...

    蓝桥杯历届真题详解(Python组)

    1. **Python基础**:包括变量、常量、运算符、流程控制(if-else、for、while)、函数定义与调用、模块导入等。熟悉Python的基本语法是解决问题的前提。 2. **数据结构**:链表、数组、栈、队列、堆、树(二叉树、...

    python 环境变量和import模块导入方法(详解)

    在Python编程中,环境变量和模块导入是两个关键的概念,它们对程序的运行和组织有着重要的影响。下面我们将深入探讨这两个主题。 首先,环境变量是操作系统用来存储配置信息的变量,这些信息对于程序的运行至关重要...

    Python开发技术详解

    2. 函数和模块:讲解如何定义和使用函数,模块的概念以及如何导入和使用Python提供的标准库或第三方库。 3. 面向对象编程:Python支持面向对象的编程范式,包括类的定义、实例化、继承、多态和封装等概念的介绍和...

Global site tag (gtag.js) - Google Analytics