第一章 使用函数构建抽象 - 1.4 实践指南:函数的艺术

优质
小牛编辑
136浏览
2023-12-01

函数是所有程序的要素,无论规模大小,并且在编程语言中作为我们表达计算过程的主要媒介。目前为止,我们讨论了函数的形式特性,以及它们如何使用。我们现在跳转到如何编写良好的函数这一话题。

  • 每个函数都应该只做一个任务。这个任务可以使用短小的名称来定义,使用一行文本来标识。顺序执行多个任务的函数应该拆分在多个函数中。
  • 函数应该定义得通常一些,准确来说,平方并不是在 Python 库中,因为它是函数的一个特例,这个函数计算任何数的任何次方。

函数定义通常包含描述这个函数的文档,叫做文档字符串,它必须在函数体中缩进。文档字符串通常使用三个引号。第一行描述函数的任务。随后的一些行描述参数,并且澄清函数的行为:

当你以函数名称作为参数来调用help时,你会看到它的文档字符串(按下来退出 Python 帮助)。

编写 Python 程序时,除了最简单的函数之外,都要包含文档字符串。要记住,代码只编写一次,但是会阅读多次。Python 文档包含了文档字符串准则,它在不同的 Python 项目中保持一致。

1.4.2 参数默认值

在 Python 中,我们可以为函数的参数提供默认值。调用这个函数时,带有默认值的参数是可选的。如果它们没有提供,默认值就会绑定到形式参数的名称上。例如,如果某个应用通常用来计算一摩尔粒子的压强,这个值就可以设为默认:

这里,pressure的定义接受三个参数,但是在调用表达式中只提供了两个。这种情况下,的值通过def语句的默认值获得(它看起来像对的赋值,虽然就像这个讨论暗示的那样,更大程度上它是条件赋值)。

作为准则,用于函数体的大多数数据值应该表示为具名参数的默认值,这样便于查看,以及被函数调用者修改。一些值永远不会改变,就像基本常数k_b,应该定义在全局帧中。