一. 认识模块
模块可以认为是一个py文件. 模块实际上是我们的py文件运行后的名称空间
导入模块:
1. 判断sys. modules中是否已经导入过该模块
2. 开辟一个内存
3. 在这个内存中执行该py文件
4. 给这个内存起个名字, 一般用的是py文件的名字. 返回给导入方
如果你的py文件是启动文件, 名字是__main__
程序的入口一般是:
if __name__ == " __main__ "
二. import
import 模块名
模块名. 属性/方法/类
每个模块都有自己的独立的名称空间,每个都有一个global, 互相并不影响
模块.属性= 值 #最好不要这么干
三. from xxx import xxxx
from 模块import 函数/变量
当作自己的变量或者函数来使用
from xxx import * 导入所有
导入的内容都可以起别名 as
特别特别要注意, 如果我们在不同的模块中引入同一个模块,
并且在某一个模块中改变了被引入模块中的全局变量.
则其他模块看到的值也跟着变, 原因python的模块只会引入一次,
大家共享同一名称空间.
如果当前文件中出现了重名的变量时,会覆盖掉模块引入的那个变量
不仅仅是变量名不要重复, 我们自己创建的py 文件 的名字不要和系统内置的模块重名,
否则,引入的模块都是python内置的模块