闭包:
定义: 内部函数返回了外部函数的变量 ,并且内部函数作为外部函数的返回值 ,就是闭包 。
条件:
Python 的函数内部还允许嵌套函数
Python 函数可以作为函数参数和函数返回值 。
def fun_1(s):
s1='hello'+s
def fun_2():
return s1
return fun_2()
print(fun_1('world!'))
# helloworld!
作用: 建立了2个函数的关系 不修改别的函数代码并且添加功能
装饰器:
装饰器是引用闭包的特性
# fun这个函数是从外部传进来的。自定义装饰器
# 内部函数作为外部函数的返回值,把要装饰方法通过参数传入。
def desc(fun):
def add_info():
# 加功能之后的顺序编写
print('hello,欢迎!')
fun()
print('会员name,今天有打折')
return add_info
# 如何使用自定义的装饰器。@装饰器的方法名,放在需要装饰的地方
@desc
def login():
print("login")
login()
'''
login
会员name,今天有打折
'''
递归函数:
def fact(n):
if n=1
return 1
return fact(n-1)*n
fact(n)