创建参数化装饰器的方便方法。

paramdec的Python项目详细描述


paramdec是创建参数化装饰器的方便方法。

用法

创建参数化装饰器:

>>> from paramdec import paramdec
>>> @paramdec
... def my_dec(func, foo=42, bar=None):
...     def wrapper(*func_args, **func_kwargs):
...         # Process foo and bar
...         return func(*func_args, **func_kwargs)
...     return wrapper

与参数一起使用:

>>> @my_dec(bar="bar")
>>> def func(): pass

或不带参数:

>>> @my_dec()
>>> def func(): pass

甚至没有括号:

>>> @my_dec
>>> def func(): pass

另外,考虑为您的装饰器使用functools.wraps

限制

  • 不支持位置参数。

这背后的原因是我没有找到任何Python的方法 使decorator区分要修饰的函数和 回调。因此,如果将一个可调用的位置参数传递给 参数化的decorator,它将错误地决定调用它不是 但作为一个临时的装饰工。

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

推荐PyPI第三方库


热门话题
java如何处理可以为null或整数的POJO类值   JavaFXSpring类NotFoundException:org。springframework。上下文注释。注释ConfigApplicationContext   java Jackson JSON不包装嵌套对象的属性   编写多个SQL查询的java最佳实践   安卓 java。lang.IllegalStateException:无法提取AndroidPlatform、sslSocketFactory上的信任管理器   MongoDB/Morphia将技术id保存为ObjectId,尽管它在Java中是一个字符串   JavaEclipse只加载log4。测试文件夹中的属性   java如何通过次对角线遍历2D数组?   java在geotools jmappane中制作shapefile编辑器   数组如何在java中获得表大小2^32   java API调试。如何查找函数体之前发生的错误?   java如何创建二维数组,其中#1位于随机位置,并执行特定次数   java文本文件比较   java SDK支持diff spring版本   javaspring引导集成测试javax。坚持不懈PersistenceException:org。冬眠PersistentObject异常