装饰工具。当前“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中的参数名前面加上修饰函数中不存在的内容。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java@UnwrapValidatedValue和Spring LocalValidatoryFactoryBean   JavaSpring静态资源映射:控制器与addResourceHandler   java Android SurfaceView视频重叠   java Android字符串资源上标   docker Dockerfile在找不到Java类时失败,如何指定类路径或jar/mvnw?   java如何让扫描仪从用户输入中选择关键字?   java Sleuth不会在spring boot应用程序中打印spanId和traceId   java为什么客户端不能从订阅中获取信息?   jboss您如何继续学习企业Java应用服务器?   java Bukkit插件语法错误:语法错误,插入“}”以完成类体   在数据库中保存java GCM消息时出错   来自单个数组的java循环对象   java如何使用multple@Path参数进行改造   java layoutinflater不会膨胀整个布局   Java 8并行排序与Scala并行排序   java如何打印出数组中的最后一项   当试图创建HSSFWorkbook时,java代码“部分崩溃”   java索引多维数组