模块and包

一.模块

1.import 加载的模块四个通用类别

  1.使用python编写的py文件

  2.已被编译为共享库或者DLL或者C\C++的扩展

  3.包好一组模块的包

  4.使用c编写并连接到python解释器的内置模块

2.导入模块时python的流程

  1.先判断当前导入的模块是否已经导入过

  2.如果导入过,不会重新导入该模块

  3.如果没有导入过,给导入的模块创建新的名称空间

  4.在新创建的名称空间中运行该模块中的代码

  5.创建模块的名字,方便后面的引用

3.if __name__ == '__main__'的作用

  如果在自己py中运行,__name__ 就是 __main__

  如果被其他py导入运行,__name__就是导入模块的名字

  这样可以控制在别人导入的时候执行if __name__ == "__main__":下面的代码

4.导入模块的规则

  1.所有的模块导入都要写在最上面,

  2.先引入内置模块

  3.再引入扩展模块

  4.最后引入自己写的模块

5.导入模块的方式

  1.import  xxx        导入xxx ,也可以导入xxx中的东西        

  2.from xxx import yyy     从xxx中导入yyy             # 注意重名 重名了用的是后面的

  3.from xxx import *       从xxx中导入全部    不推荐,这样写注意名字会不会重名

  4.import  xxx as x      导入xxx并命名为x

6.自定义模块名注意事项

  自己写的模块名千万不要和系统的内置模块重名

二.包

  一个表达式 -> 一条语句 -> 语句块 -> 函数 -> 类 -> 模块 -> 包

  包就是我们的文件夹,包内可以写很多个模块

  包,模块的查找路径:sys.path 随动  跟着你的启动文件所在位置变化

 1.绝对导入(推荐)

  跟模块一样

 2.相对导入(大项目推荐)

  .  表示本层

  ..  表示上一层

  相对导入注意事项:

    存在相对导入语句的模块,是不能直接运行的.因为一个模块必须有包结构且只能导入它的顶层模块内部的模块,所有一个模块被直接运行,则它自己为顶层模块,不存在层次结构,所以找不到其他的相对路径.

 

posted @ 2018-12-29 18:06  雾霾1024  阅读(114)  评论(0编辑  收藏  举报