# 闭包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----闭包和装饰器所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)