1)函数返回值
函数返回的值称为返回值(return value)。在此之前定义的函数均没有返回值。之前使用过的内建函数,大部分都有返回值,如int()函数:
- >>> int(3.14) # 返回值是3
- 3
一直使用交互模式常常会让初学者默认为打印出的内容就是函数的返回值,如这种情况:
- >>> def hello_world(): # 这个函数没有返回值
- ... print('Hello,world!')
- ...
- >>> hello_world() # 调用这个函数时,误以为有返回值Hello, world!
- Hello,world!
- >>> h = hello_world() # 试图将返回值赋给变量h,因为再次调用函数,所以打印结果
- Hello,world!
- >>> print(h) # 打印h的值,发现h的值是None,证明该函数没有返回值
- None
自定义函数时,使用return语句来返回一个值到调用函数的代码行。例如,将hello_world()改写成有返回值的函数:
- >>> def hello_world():
- ... return 'Hello,world!' # 返回值是'Hello, world!'
- ...
- >>> h = hello_world()
- >>> print(h) # 现在h有值了,证明该函数有返回值
- Hello, world!
写在return后面的值就是返回值。如果一个函数没有return语句,或者return语句后面没有任何值,函数会默认返回None。None和True、False一样,是一个内建值(类似于内建函数),是由Python解释器定义的,None代表什么都没有。
函数在执行return语句之后,就立即返回,不再执行函数体内return语句后面的所有语句:
- >>> def f():
- ... print('a')
- ... print('b')
- ... return
- ... print('c')
- ... print('d')
- ...
- >>> f()
- a
- b
可以发现上面的函数只打印了“a”和“b”,这是由于函数在return语句处就终止了。在编程时可以利用这一特性,让函数在某些条件下终止。
2)匿名函数
Python中的匿名函数(anonymous function)是指没有名字的函数。一般函数使用def关键字定义,而匿名函数使用lambda关键字定义,故匿名函数也称为lambda函数。
匿名函数的语法格式如下:
lambda 参数:表达式
冒号的左边为函数参数,多个参数使用逗号隔开;冒号的右边为表达式。匿名函数的参数可以有任意个数的参数,但是只能有一个表达式,这个表达式的计算结果作为匿名函数的返回值(它不能使用return语句,但是会默认返回计算结果)。匿名函数可以在任何需要普通函数(普通函数是指使用def关键字定义的函数)的地方使用。下面是一个匿名函数,它计算了两个数字的乘积:
- >>> # 由于匿名函数没有名字,因此,如果想要重复使用它,需要将它与一个名字绑定
- >>> mul = lambda x, y: x * y
- >>> mul(9, 9)
- 81
- >>> mul(3, 5)
- 15
可以使用def关键字来重新定义同一个函数:
- >>> def mul(x, y):
- ... return x * y
- ...
- >>> mul(9, 9)
- 81
- >>> mul(3, 5)
- 15
看起来匿名函数比def关键字定义的函数只是简便了一点,好像没有必要学习。但实际上,匿名函数很多时候都会作为高阶函数(higher-order function)的参数使用。
如果对Python开发感兴趣或者想要深入学习的现在可以免费领取学习大礼包哦(点击领取80G课程资料 备注:领资料)。