Python 函数、文件与模块
2007-03-30 12:32:37 来源:WEB开发网核心提示: 此示例已经非常有用,但还可使它更强大,Python 函数、文件与模块(6),如清单 5 所示,在 Python 中,完成上一步后,在您保存 test.py 的目录中启动一个新的 Python 解释器,函数可返回任何有效的对象类型,包括容器类型在内
此示例已经非常有用,但还可使它更强大,如清单 5 所示。在 Python 中,函数可返回任何有效的对象类型,包括容器类型在内。因此,您可以计算多个数量,并轻松地将多个结果返回给调用语句。
清单 5. 返回复合值
>>> def stats(data):
... sum = 0.0
... for value in data:
... sum += value
... mean = sum/len(data)
... sum = 0.0
... for value in data:
... sum += (value - mean)**2
... variance = sum/(len(data) - 1)
... return (mean, variance)
...
>>> stats([1, 2, 3, 4, 5])
(3.0, 2.5)
>>> (m, v) = stats([1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> print m, v
5.0 7.5
为了从一个函数中返回多个值,要将其括在一个括号中并以逗号分隔 —— 换句话说,创建并返回一个 tuple。新 stats 函数的函数体要略加修改,以计算数字序列的样本方差。最后,正如 stats 函数的两次调用所示,tuple 值可作为一个 tuple 存取,也可将其解包为各自的分量。
模块:简化代码重用
至此,您或许已相信了代码重用的价值。但即便是使用函数,您依然需要在打算使用函数时重新输入函数体。例如,当您打开一个新的 Python 解释器时,必须键入之前所创建的所有函数。幸运的是,您可以使用模块 将相关函数(和其他 Python 对象)封装在一起,将其保存在一个文件中,然后将这些已定义好的函数导入到新 Python 代码内,包含于 Python 解释器之中。
为介绍在 Python 中使用模块的方法,我们将重用清单 5 中的 stats 方法。有两个选择:您可以从与本文相关的压缩文件中提取名为 test.py 的文件,也可以在编辑器中键入函数,然后将文件保存为 test.py。完成上一步后,在您保存 test.py 的目录中启动一个新的 Python 解释器,然后输入如清单 6 所示的语句。
更多精彩
赞助商链接