多个装饰器的执行顺序
当有多个装饰器时,从下到上调用装饰器;
模块与包
在python中,一个.py文件就称之为一个模块
- 大大提高了代码的可维护性;
- 编写代码不必从零开始,当一个模块编写完毕,就可以被其他地方引用
模块
调用模块时用 import ....
模块分类
-内置模块:random,sys,time,collections,functools,inspect
-自定义模块:自己写的模块;
-第三方模块:pypi.python.org;itchat,qrcode
包
如果不同的人编写的模块名相同就很尴尬了,为了避免模块名冲突,python又引入了按目录来组织模块的方法,称为包。
创建包的步骤:
创建一目录为包名;
在该文件下创建_init_.py文件存放包的信息,该文件可以为空;
根据需要存放脚本文件,已编译的扩展及子包;
可以用import,import as,from import等语句导入模块和包;
作用域
在一个模块中,我们会定义很多函数和变量,但有的函数和变量我们希望给别人使用,有的函数和变量我们希望只是在模块内部使用。在python中,是通过_前缀来实现。比如_author_,_name_就是特殊变量的,_func_,_fun为私有函数,不能直接引用。
模块搜索路径
当我们试图加载一个模块时,python会在指定的路径下搜索对应的.py文件;
-默认情况下,python解释器会搜索当前目录,所有已安装的内置模块和第三方模块,搜索路劲存放在sys模块的path变量中