1,模块的导入步骤:
![](https://img2018.cnblogs.com/blog/1491323/201810/1491323-20181023173715049-713952714.png)
2,,给文件起别名的用处:
![](https://img2018.cnblogs.com/blog/1491323/201810/1491323-20181023175300517-2024351725.png)
重命名之后,原来的名字就不能用了
![](https://img2018.cnblogs.com/blog/1491323/201810/1491323-20181023180114355-355770303.png)
3,虽然这样写可以,但是不推荐,代码可读性不强,以后代码的修改成本也增加:
![](https://img2018.cnblogs.com/blog/1491323/201810/1491323-20181023180455813-183327426.png)
4,模块的导入顺序:
![](https://img2018.cnblogs.com/blog/1491323/201810/1491323-20181023180808505-1301523625.png)
5,导入变量名的两种方式:
![](https://img2018.cnblogs.com/blog/1491323/201810/1491323-20181023191850392-1686826461.png)
导入多个函数名:
![](https://img2018.cnblogs.com/blog/1491323/201810/1491323-20181023192105964-604820647.png)
函数变量的调用:
![](https://img2018.cnblogs.com/blog/1491323/201810/1491323-20181023193047890-116480203.png)
from demo import *调用时,方法名必须写在__all__中才可以调用:
![](https://img2018.cnblogs.com/blog/1491323/201810/1491323-20181023195721032-1212462429.png)
![](https://img2018.cnblogs.com/blog/1491323/201810/1491323-20181023195638617-1276902040.png)
总结:
# 所有的模块导入都应该尽量往上写
# 内置模块
# 扩展模块
# 自定义模块
# 模块不会重复被导入 : sys.moudles
# 从哪儿导入模块 : sys.path
#import
# import 模块名
# 模块名.变量名 和本文件中的变量名完全不冲突
# import 模块名 as 重命名的模块名 : 提高代码的兼容性
# import 模块1,模块2
#from import
# from 模块名 import 变量名
#直接使用 变量名 就可以完成操作
#如果本文件中有相同的变量名会发生冲突
# from 模块名 import 变量名字 as 重命名变量名
# from 模块名 import 变量名1,变量名2
# from 模块名 import *
# 将模块中的所有变量名都放到内存中
# 如果本文件中有相同的变量名会发生冲突
# from 模块名 import * 和 __all__ 是一对
# 没有这个变量,就会导入所有的名字
# 如果有all 只导入all列表中的名字
# __name__
# 在模块中 有一个变量__name__,
# 当我们直接执行这个模块的时候,__name__ == '__main__'
# 当我们执行其他模块,在其他模块中引用这个模块的时候,这个模块中的__name__ == '模块的名字'
![](https://img2018.cnblogs.com/blog/1491323/201810/1491323-20181023202805148-87781479.png)