python基础-闭包

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# 闭包:   一个函数里面嵌套一个函数,调用外层函数返回里层函数本身
#1.
def fx(x):
    x+=1
    def fy(y):
        return  x*y
    return  fy     #不要加括号

f=fx(5)      #拿到fy的函数体
n = f(5)      #fy()
print(n)


#2.传进去的参数为函数体
def  f1(func):
    print('f1 runing')
    def f2(y):
        print('f2 running')
        return  func(y) +1
    return f2

def gun(m):
    print('gun runing')
    return m*m

temp =  f1(gun)   # 返回f2函数体   # f1 runing  -> f2  ->temp
n= temp(5)     # f2( 5)  ->  ' f2 running '  -> return  func(y) +1
            #  func(y) ===  gun(m) -> gun runing   ->  5*5
            #  return  25 +1  -> 26

print(n)
0%