文章目录
学习目标
- 能够使用递归函数计算斐波那契额数列
- 能够定义和使用匿名函数
- 使用说出匿名函数的使用场景
- 能够使用高阶函数
- 能够使用装饰器计算一段代码的执行时长
- 能够使用装饰器进行权限验证(不强制要求)
一、递归函数
- 递归简单来说,就是函数内部自己调用自己
def test(a):
return a + test(a-1) if a > 1 else a == 1
test(10)
二、匿名函数
- 用 lambda 关键字能创建小型匿名函数。这种函数得名于省略了用def声明函数的标准步骤。lambda函数的语法只包含一个语句,如下:
lambda 参数列表:运算表达式
def add(a,b):
return a + b
fn = add # 相当于给函数fn起 别名。fn与x均指向同一函数的物理地址空间
print(fn(3,7)) # 等价于add(3,7)
# 除了使用 def 关键字定义一个函数以外,我们还能使用 lambda 表达式定义一个函数
# 用来表达一个简单的函数,函数调用的次数很少,基本上就是调用一次
# 调用匿名函数的两种方式
# 1. 给它定义一个名字(很少这样使用)
mul = lambda a, b: a * b # 匿名函数
print(mul(4,5))
# 2. 把这个函数当做参数传给另一个函数使用(使用场景比较多)
def calc(a,b,fn)
c = fn(a,b)
return c
# 回调函数,使用函数作为参数传入,在合适的时间作调用
x1 = calc(1,2,lambda a, b: a + b)
三、列表相关的一些方法
3.1 sort与sorted方法
# 有几个内置函数和内置类,用到了匿名函数
nums = [4,8,2,1,7,6]
# 列表的sort方法,会直接对列表进行排序
nums.sort()
# sorted内置函数,不会改变原有的数据,而是生成一个新的有序的列表
x = sorted(nums)
students = [
{
'name':'zhangsan','age':18,'score':98,'height':180},
{
'name':'lisi','age':21,'score':
标签:内置,函数,高级,匿名,使用,装饰,fn,lambda
From: https://blog.csdn.net/weixin_44063529/article/details/140398717