python 閉包

閉包:在一個外層函數中定義了一個內部函數,內部函數使用了外部函數的臨時變量,並且外部函數的返回值是內部函數。這個結構就是閉包。

重點:

1.嵌套

2.內部使用了外部變量

3.返回的是內部函數

主要用途:裝飾器(web開發中、爬蟲)

說明:如果一個函數調用結束,則裏面的所有變量或者函數佔用的內存都會釋放。

def outer(a):
    b = 10
    def inner():
        r = a + b
        print("打印:a+b",r)

    return b

result = outer(6)
print(result)#10
def outer(a):
    b = 10
    def inner():
        r = a + b
        print("打印:a+b",r)

    return inner

result = outer(6)
print(result)#<function outer.<locals>.inner at 0x03A01A98>
def outer(a):
    b = 10
    def inner():
        r = a + b
        print("打印:a+b",r)

    return inner

result = outer(6)
result()
print('---------')
#打印:a+b 16
#---------
def func1():
    number = 10
    def func2():
        nonlocal number
        number += 10
        print(number)
    return func2
r = func1()
#r其實就是一個函數
r()
#輸出20

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章