Python----闭包和装饰器

Python----闭包和装饰器,第1张

概述#闭包defouter(x):print('outer:',x)definner():print('inner:',x)returninner#外部函数return的一定是内部函数的函数名defa(x):print('a:',x)defb(y):print('b:',y)print(&#03
# 闭包def outer(x):    print('outer:',x)    def inner():        print('inner:', x)    return inner  # 外部函数return的一定是内部函数的函数名def a(x):    print('a:',x)    def b(y):        print('b:', y)        print('x+y:', x + y)        return x+y    return b  # 外部函数return的一定是内部函数的函数名if __name__ == '__main__':    # 闭包函数的调用    # 1.首先调用外函数,获得内函数的函数名     函数名=outer(3)    # 2.然后使用获得的函数名进行内函数的调用   函数名()    fun_name = outer(2)    fun_name()    # 简写    outer(3)()    a = a(1)(2)    print('哈哈哈哈:',a)

 

 

# 装饰器讲解# 装饰器的作用:在不改变原来函数执行的情况下,为这个函数做一些其他的事情/添加一些其他的事情# 一个函数可以添加多个装饰器# 闭包def fun_outer1(func):    def inner(*args, **kwargs): # *args, **kwargs 其实就是func的参数        print('你想做的事情1')        return func(*args, **kwargs)    return inner  # 外部函数return的一定是内部函数的函数名def fun_outer2(func):    def inner(*args, **kwargs):        print('你想做的事情2')        return func(*args, **kwargs)    return inner@fun_outer1  # 闭包可以作为一个装饰器  @+函数名@fun_outer2def aa(a):    print('我的函数原本要做的事情..........')if __name__ == '__main__':    aa(6)    aa(a=1)

 

总结

以上是内存溢出为你收集整理的Python----闭包和装饰器全部内容,希望文章能够帮你解决Python----闭包和装饰器所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1186773.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存