模块

容器:是对数据的封装,包括字典,列表,元组,字符串等

函数:对语句的封装

类:对方法和属性的封装(函数+数据)

模块:就是程序,任何.py结尾的都是一个独立的模块

导入模块:

1.import 模块名

2.from 模块名 import 函数名

非常不推荐这种方法,会使得命名空间的优势消失

3.import 模块名 as 新名字  这是最好的,当名字太长时可以为模块名起个新名字


模块的作用:

1.封装python的代码,可以有组织有纪律的将代码封装起来,尤其当代码很多时

2.实现代码的重用


if __name__ == '__main__'

这句话使得模块被导入后,而不会运行模块中的测试函数。只有当某个模块作为主程序被运行时,它的name是‘main’,如果只是将某个模块进行 import,它的你ame是模块名,而不会是'main'

搜索路径

python在import某个模块时,有自己的搜索路径,可以通过sys.path查看。一般来说,模块都存放在site-packages文件夹下。如果需要导入自己的某个路径下的某个模块,可以sys.path.append('your path')。因为sys.path是个列表

包(package)

大型的python软件系统,可能有成千上万个python模块很正常,只用模块来定义python的功能性还不够,因为如果把所有模块放在一个文件夹里面会非常乱非常糟糕,而且还存在命名冲突的可能。
包相当于是将python的功能模块分门别类的放在不同的文件夹,然后将文件夹的位置告诉python

创建包的步骤:

1.创建一个文件夹,用于存放相关的模块,文件夹的名字就是包的名字

2.在文件夹中创建一个__init__.py的模块文件,内容可以为空

3.将相关的文件放到文件夹中

导入时,import 包名.模块名 as 别名


python:

python是自己带着电池的语言(python标准库),设计哲学: 优雅,明确和简单

用一种方法,最好是只有一种方法来做一件事

能使用模块来完成相应的功能,就一定要用模块


PEP: Python Enhancement Proposals的缩写,翻译过来就是Python增强建议书的意思。它是用来规范与定义Python的各种加强与延伸功能的技术规格,好让Python开发社区能有共同遵循的依据。


如何快速查找并使用一个新的module

可以先在python doc里面搜索想要查询的module,然后通过__doc__查看模块的基本描述
然后直接在idle上import,并运行__doc__。比如:
模块
但是这样格式太乱,通过 print(timeit.__doc__) 格式会好很多
然后通过dir(module)查看这个模块里面定义的变量和函数
不过这个函数提供的属性比较多,如果想要得到我们比较关注的属性,通过__all__进行过滤

模块

根据过滤得到的以及上面的说明,可以看到,这个模块有一个Timer类以及三个接口函数

注意
不是所有的模块有__all__这个过滤属性,过滤掉的是不希望外界要调用的

__file__属性指明了模块代码存在的位置