查看“Python闭包”的源代码
←
Python闭包
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
在一些语言中,在函数中可以(嵌套)定义另一个函数时,如果内部的函数引用了外部的函数的变量,则可能产生闭包。闭包可以用来在一个函数与一组“私有”变量之间创建关联关系。在给定函数被多次调用的过程中,这些私有变量能够保持其持久性。(From Wikipedia) ===Python 闭包=== 在一个内部函数中,对外部作用域的变量进行引用,(并且一般外部函数的返回值为内部函数),那么内部函数就被认为是闭包。 *必须有一个嵌套函数(函数内部的函数)。 *嵌套函数必须引用封闭函数中定义的值。 *闭包函数必须返回嵌套函数。 =====一、基本形态===== def outer(x): def inner(y): nonlocal x x+=y return x return inner a = outer(10) a(1) a(1) =====二、扩展原函数功能===== def deco1(fun1): def wrapper(): print("decorator begin...") fun1() print("decorator end...") return wrapper @deco1 def fplus(): print("fplus") fplus() ====带返回值及参数==== def deco1(fun1): def wrapper(*args, **kwargs): print("decorator begin...") res = fun1(*args, **kwargs) print("decorator end...") return res return wrapper @deco1 def fplus(x = 0,y = 0): print("fplus") return x+y v1 = fplus(1,2) print(v1) ====带返回值及参数 II==== def fplus(x = 0,y = 0): print("fplus") return x+y def deco1(fun1): def wrapper(*args, **kwargs): print("decorator begin...") res = fun1(*args, **kwargs) print("decorator end...") return res return wrapper @deco1 def f(*args, **kwargs): return fplus(*args, **kwargs) v1 = f(1,2) print(v1) [[分类:Develop]] [[分类:Python]]
返回
Python闭包
。
导航菜单
个人工具
登录
命名空间
页面
讨论
大陆简体
查看
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
目录
文章分类
侧边栏
帮助
工具
链入页面
相关更改
特殊页面
页面信息