模块 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才可以。


 
					 
					