欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 手游 > Pyrhon函数-装饰器第一部分250219

Pyrhon函数-装饰器第一部分250219

2025/2/26 19:37:57 来源:https://blog.csdn.net/taoyong001/article/details/145740451  浏览:    关键词:Pyrhon函数-装饰器第一部分250219
  • 定义一个函数,在不修改这个函数的代码的情况下,让函数执行前后会有新的内容加入
def func():print("func")return
def outer():def inner():print("new code before")func()print("new code after")returnreturn inner
func = outer()# 执行到这一步,func指向变为inner
func()# 相当于执行inner(),而调用inner()时,打印before后,再调用第7行func(),就是又调用了inner(),如此反复,耗尽函数栈
  • 上述的写法会变成死循环,在第11行相当于修改了func函数的指向,导致反复调用outer函数
  • 上述写法要改写
def func():print("func")return [1, 2, 3]
def outer(arg):def inner():print("before")res = arg()print("after")return resreturn inner
func = outer(func)# 经过outer包装为闭包,括号内的func还是指向原定义的函数,等号左边func是指向了inner,左右两个func是不同的
func()# 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词