版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_23013309/article/details/89917025
递归函数
函数自己调用自己
注意事项:一定要设置一个递归终止条件,防止形成死递归
# 阶乘计算
def jie_cheng(a=0):
if a == 0:
return 1
return a*jie_cheng(a-1)
变量的作用域
函数外定义的变量,可以在函数内使用
在函数内定义的变量,其作用域为从定义开始到函数结束
函数变量
函数也是一种变量,可以把函数存储在某个变量中,通过调用这个变量,来调用这个函数
既然函数是一种变量,那么我们也可以把它作为一个参数传递给另外一个函数
嵌套函数
匿名函数
匿名函数定义规则: lambda 形参:返回值
装饰器
应用场景:当需要增加某函数的功能,但又不能直接修改源代码,就可以使用装饰器了
import time
# 一级装饰
def use_time(f):
def wrapper(a, b):
start = time.time()
re = f(a, b)
end = time.time()
print('总共用时:%d' % (end - start))
return re
return wrapper
# 多层装饰,装饰时可以带参数
def type_info(info):
def wrapper1(f):
def wrapper2(a, b):
start = time.time()
re = f(a, b)
end = time.time()
print('%s 总共用时:%d' % (info, end - start))
return re
return wrapper2
return wrapper1
@type_info(info='mc') # 这个实际上是 func2 = type_info(info, func2)
@use_time #这个实际上是 func2 = use_time(func2)
def func2(a, b):
def add(a, b):
return a + b
return add(a, b)
func2(2,3)