用于将全局变量注入函数调用的修饰程序。
inject-globals的Python项目详细描述
注入全局变量
将全局变量注入函数调用的函数。
用法示例:
一个简单的用法示例如下:
frominject_globalsimportinject_globals@inject_globals(a="Hello",b="World")defhello():print(f"{a}{b}")hello()
然而,这个例子有点傻。当你创建其他的装饰器时,它的力量就会显现出来,比如这个:
defrun_n_times(n):defmiddle(func):fromfunctoolsimportwraps@wraps(func)definner(*args,**kwargs):r=[]foriinrange(1,n+1):r.append(inject_globals(it=i)(func)(*args,**kwargs))returnrreturninnerreturnmiddle@run_n_times(3)deffoo():returnf"This is the iteration #{it}."assertfoo()==["This is the iteration #1.","This is the iteration #2.","This is the iteration #3."]