zoukankan      html  css  js  c++  java
  • Python 闭包 自由变量

    理解:封闭的东西:保证数据的安全

    #平均收盘价 方案一		数据是不安全的
    l1 = []
    def make_average(new_value):
        l1.append(new_value)
        total = sum(l1)
        average = total / len(l1)
        return average	
    *************************************************************
    #方案二:闭包
    def make_average():
        l1 = []	#自由变量
        def aver(new_value):		#闭包
            l1.append(new_value)
            total = sum(l1)
            average = total / len(l1)
            return average
        return aver
    avg = make_average()
    avg(100000)
    avg(110000)
    

    闭包定义

    1.闭包只能存在嵌套的函数中

    2.内层函数 对外层函数 非全局变量的引用 (使用),就会形成闭包 。

    被引用的非全局变量 也称为 自由变量 ,这个自由变量 会与内层函数产生一个绑定关系,

    也就是 自由变量不会在内存中消失 。

    闭包的作用: 保证数据的安全

    如何判断一个嵌套函数 是不是闭包:

    def make_average():
        l1 = []	#自由变量
        def aver(new_value):		#闭包
            l1.append(new_value)
            total = sum(l1)
            average = total / len(l1)
            return average
        return aver
    avg = make_average()
    #__code__.co_freevars 查看函数中自由变量的方法 如果有自由变量 即为闭包
    avg.__code__.co_freevars #  查看函数的自由变量(l1,)
    
  • 相关阅读:
    ssh 配置
    c指针
    centos 配置
    mac terminal 配色
    【webrtc】coturn服务搭建(27)
    【webrtc】SDP(26)
    【webrtc】webrtc通过peerconnection进行音视频互通(25)
    【webrtc】媒体协商的过程(24)
    【webrtc】STUN协议(23)
    【webrtc】webrtc网络传输基本知识(22)
  • 原文地址:https://www.cnblogs.com/pandaa/p/12053291.html
Copyright © 2011-2022 走看看