python的模块和包的概念以及各自的导入方式

系统 1390 0

模块 Module

定义

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

作用

让一些相关的数据,函数,类有逻辑的组织在一起,使逻辑结构更加清晰。
有利于多人合作开发。

导入

import
1.语法:
import 模块名
import 模块名 as 别名
2.作用:将某模块整体导入到当前模块中
3.使用:模块名.成员
from import
1.语法:
from 模块名 import 成员名[ as 别名1]
作用:将模块内的一个或多个成员导入到当前模块的作用域中。
from import *
1.语法:from 模块名 import *
2.作用:将某模块的所有成员导入到当前模块。
3.模块中以下划线(_)开头的属性,不会被导入,通常称这些成员为隐藏成员。(隐藏成员必须显式地导入(指名道姓)以表明程序员知道导入的是什么,如前两种导入方法。隐藏成员是针对非显式的导入,是防止在程序员不知情的情况下导入引起某些危险。

模块中的变量

__all__变量:定义可导出成员,仅对from xx import *语句有效。
__doc__变量:文档字符串。
__file__变量:模块对应的文件路径名。
__name__变量:模块自身名字,可以判断是否为主模块。
当此模块作为主模块(第一个运行的模块)运行时,__name__绑定’ main ’,不是主模块,而是被其它模块导入时,存储模块名。
加载过程
在模块导入时,模块的所有语句会执行。
如果一个模块已经导入,则再次导入时不会重新执行模块内的语句。
分类
1.内置模块(builtins),在解析器的内部可以直接使用。
2.标准库模块,安装Python时已安装且可直接使用。
3.第三方模块(通常为开源),需要自己安装。
4.用户自己编写的模块(可以作为其他人的第三方模块)
搜索顺序
搜索内建模块(builtins)
sys.path 提供的路径,通常第一个是程序运行时的路径。

包package

定义
将模块以文件夹的形式进行分组管理。
作用
让一些相关的模块组织在一起,使逻辑结构更加清晰。
导入
from 包名 import 模块名 [as 模块新名]
from 包名.子包名 import 模块名 [as 模块新名]
from 包名.子包名.模块名 import 成员名 [as 属性新名]

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

from 包名 import *
from 包名.模块名 import *
搜索顺序
sys.path 提供的路径

            
              
                >>
              
              
                >
              
              
                import
              
               sys

              
                >>
              
              
                >
              
               sys
              
                .
              
              path

              
                [
              
              
                ''
              
              
                ,
              
              
                'C:\\Users\\Tedu\\AppData\\Local\\Programs\\Python\\Python37\\python37.zip'
              
              
                ,
              
              
                'C:\\Users\\Tedu\\AppData\\Local\\Programs\\Python\\Python37\\DLLs'
              
              
                ,
              
              
                'C:\\Users\\Tedu\\AppData\\Local\\Programs\\Python\\Python37\\lib'
              
              
                ,
              
              
                'C:\\Users\\Tedu\\AppData\\Local\\Programs\\Python\\Python37'
              
              
                ,
              
              
                'C:\\Users\\Tedu\\AppData\\Local\\Programs\\Python\\Python37\\lib\\site-packages'
              
              
                ]
              
              
                >>
              
              
                >
              
            
          

__init__.py 文件
是包内必须存在的文件
会在包加载时被自动调用
init文件中的 __all__ 变量
记录 from 包 import * 语句时允许导入的模块,e.g:

            
              __all__ 
              
                =
              
              
                [
              
              
                "module01"
              
              
                ]
              
            
          

有时需要Remark dir as Root才可以。


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论