Python函数
我们知道,程序非常常见的情况是重复进行同样的处理过程,Python提供了将多个suites封装为「函数」的途径,通过函数将这个过程参数化。用于创建函数的语法格式:
要注意的是,def是一条与赋值操作符工作方式类似的语句。执行def时,会创建一个函数对象,同时创建一个带有指定名的对象引用,引用该函数对象。由于函数也是对象,因此可以存储在序列类型、集合类型、映射类型等组合数据类型中,并作为参数传递给其他函数。
我们当然可以创建自己的函数,但是很多时候并不需要这么做,因为Python有大量的内置函数,其标准库的大量模块中包含更多的函数,我们可以直接使用之。
函数作为类的内置函数时,与通常的方法类似,不同之处在于函数名的起始处与结尾处总是使用两个下划线,并且是预定义的。
Python模块
模块就是一个包含Python代码的文本文件,对模块的主要需求就是文件名以.py结尾,这是Python扩展名。文件可以包含自定义的函数,有时候还包括变量等。要使用某个模块内的函数功能,必须先导入该模块,例如:
import sys
导入一个模块后,就可以访问其内部包含的任意函数、变量了,例如:
print(sys.argv)
Python包
通过函数可以将多块代码包装在一起,以便其在一个程序中重用;通过模块,可以将多个函数收集在一起,以便其被任意数量的程序使用。Python还提供了创建包的工具,就是将多个模块聚集在一起,之所以要聚集在一起,通常是因为这些模块提供了相关联的功能,或者彼此存在一定的依存关系。
简单地说,包就是一个目录,其中包含一组模块和一个__init__.py文件。比如说,假定我们有假想的一组模块文件,用于读写不同类型的图形文件格式,比如Bmp.py、Jpeg.py、Png.py、Tiff.py、Xpm.py,所有这些文件都提供了load()、save()等函数。
我们可以将模块保存在程序所在目录,但对于使用大量自定义模块的大型程序,图形程序模块将被分散。通过将其放置在自己的子目录,比如Graphics,就可以将这些模块保存在一起,如果同时向Graphics目录中添加一个空的__init__.py文件,该目录就变为一个包:
Graphics/
__init__.py
Bmp.py
Jpeg.py
Png.py
Tiff.py
Xpm.py
只要Graphics目录是我们程序目录的子目录,或存在于Python路径中,我们就可以导入这些模块中的任意模块并使用之。
领取专属 10元无门槛券
私享最新 技术干货