模块
模块就是程序(更高级的封装)
命名空间
1.内置命名空间(Built-in Namespaces):内置函数的命名空间都属于内置命名空间,所以,我们可以在任何程序中直接运行它们
2.全局命名空间(Module:Global Namespaces):每个模块创建它自己所拥有的全局命名空间,不同模块的全局命名空间彼此独立,不同模块中相同名称的命名空间,也会因为模块的不同而不相互干扰。
3.本地命名空间(Function & Class:Local Namespaces):模块中有函数或者类,每个函数或者类所定义的命名空间就是本地命名空间。如果函数返回了结果或者抛出异常,则本地命名空间也结束了。
导入模块
import直接导入模块
from模块import函数
import模块as名字
if __name__ == '__main__'
对于很多编程语言来说,程序都必须要有一个入口,而 Python 则不同,它属于脚本语言,不像编译型语言那样先将程序编译成二进制再运行,而是动态的逐行解释运行。也就是从脚本第一行开始运行,没有统一的入口
当 .py
文件被直接运行时,if __name__ == '__main__'
之下的代码块将被运行;当 .py
文件以模块形式被导入时,if __name__ == '__main__'
之下的代码块不被运行
搜索路径
当解释器遇到 import 语句,如果模块在当前的搜索路径就会被导入
搜索路径是在 Python 编译或安装的时候确定的,安装新的库应该也会修改。搜索路径被存储在 sys
模块中的 path
变量中
包
包是一种管理 Python 模块命名空间的形式,采用"点模块名称"
创建包:
创建一个文件夹,用于存放相关的模块,文件夹的名字即包的名字
在文件夹中创建一个 __init__.py
的模块文件,内容可以为空
将相关的模块放入文件夹中