python基础之 025 模块加载与import的使用

内容梗概:
1. 模块
2. import
3. from xxx import xxx

1.模块
定义:
模块就是一个包含了python定义和声明的文件,文件名就是模块的名字加上.py后缀.目前写的所有的py文件都可以看成是一个模块
但是import加载的模块一共分成四个通用类别:
1. 使用pyhton编写的py文件
2. 已被变异为共享库或者DLL或C或者C++的扩展
3. 包好一组模块的包.
4. 使用c编写并连接到python解释器的内置模块

为什么要用模块??
1. 可以把代码进行分类.
2. 可以实现代码的重用.

2.import

2.1系统导入的过程
导入模块的时候都做了些什么? 首先. 在导入模块的一瞬间. python解释器会先通过sys.modules来判断该模块是否已经导入了该模块.
如果已经导入了则不再导入.如果该模块还未导入过.则系统会做三件事.
1. 为导入的模块创立新的名称空间
2. 在新创建的名称空间中运行该模块中的代码
3. 创建模块的名字. 并使用该名称作为该模块在当前模块中引用的名字.
我们可以使用globals来查看模块的名称空间

几个注意点
1.在模块中使⽤用global. 我们之前说global表示把全局的内容引入到局部.
但是.这个全局指的是py文件.换句话说.global指向的是模块内部. 并不会改变外部模块的内容
2.如果我们在不同的模块中引入了同一个模块.并且在某一个模块中改变了被引入模块中的全局变量.
则其他模块看到的值也跟着边. 原因是python的模块只会引入一次.大家共享同⼀个名称空间
3.if __name__ == '__main__': 可以作为程序入口,要学会使用(重要)
在Python中. 每个模块都有⾃己的__name__ 但是这个__name__的值是不定的. 当我们把一个模块作为程序运行的入口时.
此时该模块的__name__是"__main__" , 而如果我们把模块导入时.此时模块内部的__name__就是该模块⾃身的名字.

正确的导入模块的顺序:
1. 所有的模块导入都要写在最上面.这是最基本的.
2. 先引入内置模块.
3. 再引入扩展模块.
4. 最后引入你⾃⼰定义的模块.

3. from xxx import xxx
在使用from的时候, python也会给我们的模块创建名称空间. 这一点和import是一样的.
但是from xxx import xxx的时候. 我们是把这个空间中的一些变量引入过来了.说白了.就是部分导入.
当⼀一个模块中的内容过多的时候. 我们可以选择性的导入要使⽤用的内容.

from xxx import xxx 直接函数()就可以执行行了, 并且from语句句也⽀支持一行语句导入多个内容.并且也支持as改名.


坑:(注意)
1.当我们从一个模块中引入一个变量的时候. 如果当前文件中出现了重名的变量时.会覆盖掉模块引入的那个变量
2.不要重名. 切记. 不要重名! 不仅仅是变量名不要重复. 我们自己创建的py文件的名字不要和系统内置的模块重名.
否则. 引入的模块都是python内置的模块. 切记, 切记!!!
posted @ 2018-11-19 16:19  Mixtea  阅读(317)  评论(0编辑  收藏  举报