`
icbm
  • 浏览: 59784 次
社区版块
存档分类
最新评论

Python中module和package

阅读更多
模块(module)
包(package)

模块的创建
创建一个可被重用的Python脚本文件,即创建了一个模块。模块名即为脚本的(无后缀)文件名。可用import <modname>导入模块。

模块的属性
__name__ 对于导入的模块,与模块名相同。对于直接执行的模块,为"__main__"。可以用来区分模块是导入,还是直接执行的。

直接执行模块
if __name__ == "__main__":
    import sys
    print (sys.argv[0])


模块中可以包含变量、类、函数等定义,也可以包含语句。
模块中的语句在模块被导入时,执行一次。多次导入同一个模块时,这些语句不会重复执行。

模块有自己的命名空间。可以用from <modname> import <name>的方式,将模块内的名字,导入当前命名空间。


模块的查找顺序
1、内建模块
2、sys.path变量:脚本当前路径;PYTHONPATH环境变量;依赖于安装的默认值

编译后的Python文件
导入模块后,会生成.pyc文件。对应的.py文件的修改时间戳会记录在.pyc文件中。如果对应的.py文件被修改,.pyc将被重新生成。
.pyc文件仅加快载入速度,不会加快执行速度。
可以仅有.pyc文件,而没有.py文件。此时将直接载入.pyc文件。
可以用 -O选项,生成优化的.pyo文件。目前优化仅剔除断言。
可以用-OO选项,生成最优化的.pyo文件。此时会剔除模块的__doc__属性。使用时需确认程序中不会用到__doc__属性。
可以直接执行.pyc文件,或用优化选项执行.pyo文件。

包(package)
可以将多个模块放在一个目录中,创建一个包。该目录中必须包含一个__init__.py文件,标识该目录为包。

导入时,除了最后一个部分,前面的部分必须是包,最后一个部份可以是模块或包,不能是变量、函数及类。

包的属性
__all__ 该属性指定用 from <pkgname> import *时,导入的子模块、子包的名称。

包内的子模块相互导入时,优先导入同一个包中的模块。
分享到:
评论

相关推荐

    python-pb11-module-package.rar

    python-pb11_module_package.rar

    PyPI 官网下载 | cloverly-python-module-0.2.0.tar.gz

    PyPI(Python Package Index)是Python世界中的一个重要组成部分,它是Python开发者们分享和获取开源软件包的主要平台。在这个平台上,我们可以找到各种各样的Python库,大大提升了开发效率和代码质量。本次我们关注...

    浅谈Python中文件夹和python package包的区别

    在Python编程中,文件夹和Python package包之间存在着显著的区别。了解这些差异对于有效地组织和管理代码至关重要。本文将深入探讨这两者的概念以及它们在Python项目中的应用。 首先,让我们定义一下文件夹和Python...

    Python-isort对Pythonpackage的import顺序进行排序

    在Python编程中,保持代码整洁和一致性至关重要。`isort`是一个非常实用的工具,它可以帮助我们自动排序Python源码中的`import`语句,从而符合一定的规范,提高代码的可读性和团队协作效率。标题提到的"Python-isort...

    关于Python如何避免循环导入问题详解

    Python 中使用package时,出现循环导入问题十分常见,我们创建如下package来说明这个问题: pkg ├── __init__.py ├── module_a.py └── module_b.py 其中, __init__.py 将pkg指定为一个Python package ...

    python基础-Package与层次组织 将多个module组织在一个文件夹中,形成一个package; 例如: 一个名

    将多个module组织在一个文件夹中,形成一个package; 例如: 一个名叫A的package(文件夹)含一个名叫B的module(.py文件) 导入B的方式:import A.B from A.B import ### 在较大规模的python程序编写中很有用!

    python基础-Package基础用法.docx

    Python中的包(Package)是组织和管理大型项目的重要机制,它允许我们将相关的模块(Module)分组到一起,形成一个可导入的结构。在Python中,一个包实际上就是一个包含`__init__.py`文件的文件夹。这个特殊的`__...

    Python中文手册

    - **模块与包**:Python使用模块(module)组织代码,通过import语句导入。包(package)是管理大型项目的一种方式,可以包含多个子模块。 - **面向对象编程**:Python支持类(class)和对象的概念,可以实现封装...

    Python库 | testmodule3091-0.0.8.tar.gz

    在IT行业中,Python是一种广泛应用的高级编程语言,以其简洁、易读的语法和丰富的库支持而闻名。在标题中提到的“Python库 | testmodule3091-0.0.8.tar.gz”是一个特定的Python库,它被打包成了tar.gz格式的压缩文件...

    Python中模块(Module)和包(Package)的区别详解

    在Python编程中,模块(Module)和包(Package)是两种重要的代码组织方式,它们有助于提高代码的可读性、可维护性和复用性。下面将详细解释这两者之间的区别和使用方法。 **1. 模块(Module)** 模块是Python代码...

    python3、pip3、flask库

    在IT行业中,Python是一种广泛应用的高级编程语言,以其简洁易读的语法和强大的库支持而闻名。Python3是Python的最新版本,相比Python2,它引入了许多改进和新特性,如更好的Unicode支持、新的语法结构以及弃用了...

    mac PyCharm添加Python解释器及添加package路径的方法

    PyCharm执行Python时,找不到自己安装的package,例如pandas、numpy、scipy、scikit等,在执行时报如下错误ImportError: No module named pandas: Traceback (most recent call last): File "&lt;input&gt;", ...

    dive into python 深入理解Python中文

    此外,还会介绍模块(module)和包(package)的使用,这是Python组织代码的重要方式,方便代码的重用和管理。 在面向对象编程方面,《深入理解Python》会详细解析类与对象的概念,包括类的定义、对象的创建与销毁...

    python模块导入练习.zip

    在给定的压缩包文件"python模块导入练习.zip"中,有两个主要的文件:`main.py`和`my_package`。`main.py`通常是程序的入口点,而`my_package`则可能是一个包含多个相关模块的包。 首先,让我们详细了解Python的模块...

    python import

    例如,如果你在一个名为`package`的目录下有`module1.py`和`module2.py`,在`module1.py`中导入`module2.py`可以写作: ```python from . import module2 ``` 这里的`.`表示当前目录。如果`module2.py`在`...

    python标准库对象导入语句-python基础教程总结9-模块,包,标准库.pdf

    在Python编程语言中,模块是组织代码的基本...总的来说,理解并熟练掌握Python中的模块、包和标准库的导入机制对于编写高效、可维护的代码至关重要。正确使用这些工具可以使代码结构清晰,减少代码重复,提高代码质量。

    python 同级目录下的模块间的调用方法以及代码

    最后,提供的文档`python27[同级目录模块间的调用方法].doc`和`package`可能包含了更详细的示例和解释,建议参考阅读以获取更全面的知识。在实际开发中,不断实践和调试将帮助你更好地掌握Python的模块导入机制。

    Python库 | ferrys_first_module-1.0.0.zip

    1. **安装**:使用`pip`(Python的包管理器)进行安装,命令可能是`pip install ferrys_first_module`,如果库不在PyPI(Python Package Index)上,则需要先下载`.zip`文件,然后通过`pip install .`在解压后的目录...

    PYTHON包.zip

    在Python中,“包”(Package)是组织代码的一种方式,它允许开发者将相关的模块分组到一个命名空间下,便于管理和重用。 Python包通常由多个模块(.py文件)组成,这些模块可以是函数、类或者其他可执行的代码。...

Global site tag (gtag.js) - Google Analytics