note:
一:简介 从 Python 解释器退出再进入,那么你定义的所有的方法和变量就都消失了。 为此 Python 提供了一个办法,把这些定义存放在文件中, 为一些脚本或者交互式的解释器实例使 用,这个文件被称为模块。 模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py。 模块可以被别的程序引入,以使用该模块中的函数等功能。 这也是使用 python 标准库的方法。 模块中创建私有属性和方法,将不会被其他模块导入。除非添加__all__ = [变量, 值]二:模块的导入方法 (1)import module 没有把直接定义在module中的函数名称写入到当前符号表里,只是把模块的名字写到了那里 用模块名来访问函数. 常用函数赋一个别名:myName = module.funcName (2)from … import 语句 不会把整个fibo模块导入到当前的命名空间。 (3)from … import * 把一个模块的所有内容全都导入到当前的命名空间也是可行的。 (4)模块使用方法:dir()---->help()----->print(module.__doc__) print(module.__file__)阅读源码三:模块深入学习 (1)模块除了方法定义,还可以包括可执行的代码。这些代码一般用来初始化这个模块。 这些代码只有在第一次被导入时才会被执行。 每个模块有各自独立的符号表,在模块内部为所有的函数当作全局符号表来使用 (2)模块搜索路径 首先,Python 会在内建模块中搜寻 foobar; 若未找到,则 Python 会在当前工作路径(当前脚本所在路径,或者执行 Python 解释器的路径) 中搜寻 foobar; 若仍未找到,则 Python 会在环境变量 PYTHONPATH 中指示的路径中搜寻 foobar; 若依旧未能找到,则 Python 会在安装时指定的路径中搜寻 foobar; 若仍旧失败,则 Python 会报错,提示找不到 foobar 这个模块五:__name__属性 if __name__ == '__main__': print('程序自身在运行') else: print('我来自另一模块') dir()函数查看模块中所有的方法和属性六:包 Python 允许用户把目录当成模块看待。 这样一来,目录中的不同模块文件,就变成了「包」里面的子模块。 包目录下还可以有子目录,这些子目录也可以是 Python 包。 这种分层,对模块识别、管理,都是非常有好处的。 特别地,对于一些大型 Python 工具包,内里可能有成百上千个不同功能的模块。 若是逐个模块发布,那简直成了灾难。 七:包的目录结构 (1)要求每一个「包」目录下,都必须有一个名为 __init__.py 的文件 __init__.py 中可以保留一些初始化的代码——比如引入依赖的其他 Python 模块。 (2)https://liam0205.me/2017/07/23/modules-and-packages-of-python/参考文章八:包的调用 同模块的调用!九:源码和帮助文档的使用 dir() help() .__file__存放源码的路径1 # 熟悉几种导入模块的方法 2 3 4 def func_1(func_name, *numbers): 5 print(func_name, numbers) 6 return 'Done' 7 8 9 money = 200 # 模块里面的全局变量10 11 12 def add_money():13 global money14 money = money + 115 return money