zoukankan      html  css  js  c++  java
  • python闭包,看不懂请揍我

    什么是闭包?

    闭包就是一个个内嵌函数+内嵌函数里面引用了外部变量+返回这个内嵌函数(一般是这样)

    为什么使用闭包?

    有点类似与函数模板?。。
    举一个实际的例子:

    class people:
        name = ''
        has = []
        def __init__(self, name, has):
            self.name = name
            self.has = has
    
    def chidongxi(people):
        def gochi():
            #还可做各种操作 - -
            print( people.name + '吃' + ','.join(people.has) )
        return gochi
    
    p1 = people('why',['apple','banana','li'])
    p2 = people('wj',['shi','haha','nishuone'])
    
    z1 = chidongxi(p1)
    z2 = chidongxi(p2)
    
    z1()
    z2()
    

    这里有一个人的类,有名字name和他拥有的吃的has
    吃东西这个方法,就是一个简单的闭包,他可以根据不同的人,拥有的不同的东西,进行吃的操作
    其中,people 这个变量就是外部变量,gochishi()是内嵌函数(它使用了people)
    我们看一下结果

    why吃apple,banana,li
    wj吃shi,haha,nishuone
    
    

    好处:
    1.封装
    2.实现代码复用

    参考:
    [1]. python-闭包详解
    [2]. [Python小记] 通俗的理解闭包 闭包能帮我们做什么?

    如果我的文章帮到了你,请客官打个赏支持一下吧
         

  • 相关阅读:
    webservice4
    webservice2
    webservice3
    webservice
    java 堆栈分析4
    java 堆栈分析3
    java 堆栈分析2
    java 堆栈分析
    数据库的Timeout
    node.js小结 2
  • 原文地址:https://www.cnblogs.com/whyaza/p/10092464.html
Copyright © 2011-2022 走看看