十三、Python之模块与包

模块 Module

    定义

            包含一系列数据、函数、类的文件,通常以.py结尾。

    作用

            让一些相关的数据,函数,类有逻辑的组织在一起,使逻辑结构更加清晰。

            有利于多人合作开发。

    导入

         import

                    语法: 

                  import 模块名

                  import 模块名 as 别名

                   作用:将某模块整体导入到当前模块中

                   使用:模块名.成员

        from import

                   语法:

             from 模块名 import 成员名[ as 别名1]

       作用:

             将模块内的一个或多个成员导入到当前模块的作用域中。

        from import *

                  语法:from 模块名 import *

                  作用:将某模块的所有成员导入到当前模块。

                  模块中以下划线(_)开头的属性,不会被导入,通常称这些成员为隐藏成员。

        模块变量

                  __all__变量:(元组)定义可导出成员,仅对from xx import *语句有效。

                  __doc__变量:文档字符串。

                  __file__变量:模块对应的文件路径名。

                  __name__变量:模块自身名字,可以判断是否为主模块。

                  当此模块作为主模块(第一个运行的模块)运行时,__name__绑定'__main__',不是主模块,而是被其它模块导入时,存储模块名。

    加载过程

             在模块导入时,模块的所有语句会执行。

             如果一个模块已经导入,则再次导入时不会重新执行模块内的语句。

    分类

             内置模块(builtins),在解析器的内部可以直接使用。

             标准库模块,安装Python时已安装且可直接使用。

             第三方模块(通常为开源),需要自己安装。

             用户自己编写的模块(可以作为其他人的第三方模块)

    搜索顺序

             搜索内建模块(builtins)

             sys.path 提供的路径,通常第一个是程序运行时的路径

 

 

包package

    定义

             将模块以文件夹的形式进行分组管理

    作用

             让一些相关的模块组织在一起,使逻辑结构更加清晰。

    导入

             import 包名 [as 包别名]  需要设置__all__

             import  包名.模块名 [as 模块新名]

             import  包名.子包名.模块名 [as 模块新名]

 

             from 包名 import 模块名 [as 模块新名]

             from 包名.子包名 import 模块名 [as 模块新名]

             from 包名.子包名.模块名 import 成员名 [as 属性新名]

 

             # 导入包内的所有子包和模块

             from 包名 import *

             from 包名.模块名 import *

    搜索顺序

             sys.path 提供的路径

    __init__.py 文件

             是包内必须存在的文件

             会在包加载时被自动调用

    __all__

             记录from 包 import * 语句需要导入的模块

案例:

my_ project /

main.py        

common/

    __init__.py

double_list_helper.py

list_helper.py

    skill_system/

        __init__.py

        skill_deployer.py

skill_manager.py

发布了39 篇原创文章 · 获赞 10 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/chiaotien/article/details/104388903
今日推荐