装饰工具。当前“paremetized”:启用平面装饰器的装饰器:直接从装饰器主体调用包装函数
extradeco的Python项目详细描述
##Extradeco
参数化(平面装饰)
应该用
“parametrized”来修饰decorator中的内部“wrapper”函数这个“包装器”现在可以用作一个参数化的装饰器,它有额外的参数
当func本身被调用时,装饰所需要的任何参数都会与func对象一起传递给func对象-“*args”和“**kwargs”参数应该在对原始“func”的调用中传递下去。
需要参数的decorator,通过doing:
```
from extradeco import paremetized
@parametrized
def ubberlog(func,loglevel,*args,**kw):
if loglevel>;2:
print(“doing things”)
if loglevel>1:
print(“doing less things”)
直接调用decorator主体上的原始函数的行
result=func(*args,**kw)
如果loglevel:
print(“function returned”,result)
return result
````
,然后,新的logger decorator可以这样使用:
```
@ubberlog(2)
def soma(a,b):
return a+b
@ubberlog(1)
def s1(a,b):
return a+b
````
decorator中的参数名与最终修饰函数中的任何参数名都不匹配。
建议您在decorator中的参数名前面加上修饰函数中不存在的内容。
参数化(平面装饰)
应该用
“parametrized”来修饰decorator中的内部“wrapper”函数这个“包装器”现在可以用作一个参数化的装饰器,它有额外的参数
当func本身被调用时,装饰所需要的任何参数都会与func对象一起传递给func对象-“*args”和“**kwargs”参数应该在对原始“func”的调用中传递下去。
需要参数的decorator,通过doing:
```
from extradeco import paremetized
@parametrized
def ubberlog(func,loglevel,*args,**kw):
if loglevel>;2:
print(“doing things”)
if loglevel>1:
print(“doing less things”)
直接调用decorator主体上的原始函数的行
result=func(*args,**kw)
如果loglevel:
print(“function returned”,result)
return result
````
,然后,新的logger decorator可以这样使用:
```
@ubberlog(2)
def soma(a,b):
return a+b
@ubberlog(1)
def s1(a,b):
return a+b
````
decorator中的参数名与最终修饰函数中的任何参数名都不匹配。
建议您在decorator中的参数名前面加上修饰函数中不存在的内容。