day3-高阶函数,装饰体

阶函数

#高阶函数
#类型1:将函数作为实参的函数,可以称为高阶函数

def test1(test2): #test1为高阶段函数
    print('GL')
    test2()
def test2():
    print('HF')
test1(test2)
#类型2:返回值中包含函数名的函数,也可以成为高阶函数

def test3(test): #test3为高阶函数
    print('3')
    return test
def test4():
    print('4')
#test3(test4) ()#返回值可以直接运行
test = test3(test4) #可以将返回值赋予一个变量
test() #可以调用函数

最简单的装饰器,个人的理解

 1 def test_2(test): #创建预设嵌套体,以test()函数作为主体的形参为切入点,test_2为高阶函数
 2     def test_body(): #创建被嵌套体,嵌套函数(满足装饰器条件之一)
 3         test() #被嵌套体声明一个函数,对应,主体函数的形参,让其升级为高阶函数的格式之一
 4         print("我是未来添加的模块!") #在不改变下边函数test_1模块的基础上,直接为下面模块添加新的内容!
 5     return test_body #让后将被被嵌套体的逻辑内容返回给提供嵌套的主体函数,高阶+嵌套=装饰器
 6 #要点,1:必须在主体函数和被嵌套体中间搭建一个函数被主体利用的行参,桥梁,这个形参最后以函数形式出现必须在嵌套体内。
 7 #      2:必须将被嵌套体的逻辑内容返回给主体。
 8 @test_2
 9 def test_1():
10     print("我是原来的老模块")
11 test_1()

 

posted @ 2017-11-15 22:06  大雷音寺回首西天路上  阅读(92)  评论(0编辑  收藏  举报