python之閉包(Closure) 詳細註解

閉包函數:閉包

def sum_late(*args):函數

    def cals_sum():
        ax = 0
        for i in args:
            ax = ax + i
        return ax                                 # 這裏返回了一個階層相加的結果io

    return cals_sum                        # 這裏返回內部函數function

print(sum_late(1, 2, 3, 4))          # 給外部函數傳入一個元組,返回一個內部函數(注意這裏返回的是一變量

                                                            個函數不是一個值)循環

cals_sum = sum_late(1, 2, 3, 4)  # 把外部函數的值賦值給內部函數,執行這個函數,最後返回一個相引用

                                                                加的結果return

print(cals_sum())                              # 這裏輸出一個循環累加的結果參數

執行的結果爲:

>>>  <function sum_late.<locals>.cals_sum at 0x7f087f671730>

>>> 10

函數稱之爲閉包,由於在函數sum_late中又定義了函數cals_sum,而且內部函數cals_sum能夠引用外

部函數sum_late的參數和局部變量.當sum_late返回函數cals_sum時,相關參數和變量都保存在返回

的函數中,因此稱爲閉包.

相關文章
相關標籤/搜索