第十六章、函数基础
简而言之,一个函数就是将一些语句集合在一起的部件,它们能够不止一次地在程序中运行。
函数是Python为了代码最大程度的重用和最小化代码冗余而提供的最基本的程序结构。
为何适用函数
①、最大化的代码重用和最小化代码冗余。
②、流程的分解。
编写函数
①、def是可执行的代码。
②、def创建了一个对象并将其赋值给一个变量名。
③、lambda创建一个对象但将其作为结果返回。
④、return将一个结果对象发送给调用者。
⑤、yield向调用者发回一个结果对象,但是记住它离开的地方。
⑥、global声明了一个模块级的变量并被赋值。
⑦、nonlocal声明了将要赋值的一个封闭的函数变量。
⑧、函数是通过赋值(对象引用)传递的。
⑨、参数、返回值以及变量并不是声明。
1、def语句:
def语句将创建一个函数对象并将其赋值给一个变量名。
def的首行定义了函数名,赋值给了函数对象,并在括号中包含了0个或以上的参数(有些时候称为是形参)。在函数调用时,在首行的参数名赋值给了括号中的传递来的对象。
Python的return语句可以在函数主体中的任何地方出现。它表示函数调用的结束,并将结果返回至函数调用处。return语句是可选的。
2、def语句是实时执行的:
Python的def语句实际上是一个可执行的语句:当它运行的时候,它创建一个新的函数对象并将其赋值给一个变量名。
第一个例子:定义和调用
1、定义:
当Python运行到这里并执行了def语句时,它将会创建一个新的函数对象,封装这个函数的代码并将这个对象赋值给变量名。
2、调用:
在def运行之后,可以在程序中通过在函数名后增加括号调用(运行)这个函数。括号中可以包含一个或多个对象参数,这些参数将会传递(赋值)给函数头部的参数名。
3、Python中的多态:
第二个例子:寻找序列的交集
1、定义:
2、调用:
3、重访多态:
4、本地变量:
所有的本地变量都会在函数调用时出现,并在函数退出时消失。
本章小结
这一章介绍了函数定义的核心概念——语法以及def和return语句的操作,函数调用表达式的行为,以及Python函数中多态的概念和优点。