【Python】模块和包
简介
一般情况下我们定义的方法和变量会随着Python解释器的退出而消失,因此我们通常把自己定义的函数和变量存放在以.py结尾的文件中供其他系统使用,这些文件被称为模块。
模块的好处
1. 可以大大提高了代码的可维护性。
2. 可以避免函数名和变量名冲突。
创建模块注意事项:
1. 模块名要遵循Python变量命名规范,不要使用中文、特殊字符;
2. 模块名不要和系统模块名冲突
导入模块
import
导入当前搜索路径的模块
搜索路径是一个解释器会先进行搜索的所有目录的列表,解释器依次从这些目录中去寻找所引入的模块。可以通过sys.path获取
form ... import
从模块中导入一个指定的部分到当前命名空间中
模块属性
__NAME__属性
一个模块被另一个程序第一次引入时,其主程序将运行。
如果我们想在模块被引入时,模块中的某一程序块不执行,我们可以用__name__属性来使该程序块仅在该模块自身运行时执行。
每个模块都有一个__name__属性,当其值是'main'时,表明该模块自身在运行,否则是被引入。
dir() 函数
找到模块内定义的所有名称,以一个字符串列表的形式返回
公有、私有
模块中正常的函数和变量都是公开的,可以被直接使用。
以左右双下划线(abc)格式命名的变量为特殊变量,可以被直接引用,但是有特殊用途。
以单下划线(_abc)或双下划线(__abc)格式命名的变量和函数是非公开的,不应该被直接引用。
包
按目录来组织模块的方法,称为包(Package)。
包是一种管理 Python 模块命名空间的形式,可以完美解决不同库之间模块重名的情况。
目录只有包含一个叫做__init__.py 的文件才会被认作是一个包