2.4 Python中的用户自定义函数
Python除了提供内置函数之外,也允许用户自定义函数。你可以通过自定义函数来实现所需的功能。下面是Python中定义函数的简单规则:
- 函数代码块以关键字
def
开头,后面跟随函数名和括号。 - 任何输入参数都应放到括号内。
- 函数体的第一行语句是可选的语句——函数的文档字符串,或者称为docstring。
- 每个函数的代码块都以冒号(:)开头,并且缩进。
- 语句
return [expression]
退出一个函数,并可选地返回一个表达式给调用者。不带参数的return
语句等同于返回None
。 - 如果一个函数没有指定返回语句,那么这个函数自动返回
None
,这是Python中的一种特殊类型的值。
这里有一个非常简单的自定义Python函数:
上述示例虽然简单,但说明了Python中自定义函数的语法。下面的示例更实用一些:
2.4.1 在函数中设定默认值
清单2.13的DefaultValues.py
说明了如何在函数中设定默认值。
清单2.13 DefaultValues.py
清单2.13定义了三个函数并对每个函数进行调用。函数numberFunc()
和stringFunc()
打印它们的两个形参值,函数collectionFunc()
在第二个形参为None
的时候输出一段信息。清单2.13的输出如下所示:
清单2.14的MultipleValues.py
说明了如何在函数中返回多个值。
清单2.14 MultipleValues.py
清单2.14的输出如下所示:
2.4.2 具有可变参数的函数
Python允许你定义参数数量可变的函数。此功能在许多情形下应用,比如计算一组数的和、平均值、乘积。例如,下面的代码块计算两个数的和:
上述代码的输出如下所示:
然而,上述求和代码块只能计算两个数的和。
清单2.15的VariableSum1.py
说明了如何对一组可变数量的数字求和。
清单2.15 VariableSum1.py
清单2.15定义的sum
函数的形参值可以是任意数字列表。函数的下一部分初始化sum
为0
,然后通过一个for
循环遍历values
中的值并累加到变量sum
中。sum()
函数的最后一行代码返回变量sum
的值。清单2.15的输出如下所示:
2.4.3 lambda表达式
清单2.16的Lambda1.py
说明了在Python中如何创建lambda函数。
清单2.16 Lambda1.py
清单2.16定义了一个lambda表达式add
,它接受两个形参并返回它们的和(对数字来说)或者它们的连接(对字符串来说)。
清单2.16的输出如下所示: