部分使用类固醇的蟒蛇

partialize的Python项目详细描述


部分使用类固醇的Python

https://travis-ci.org/5monkeys/partialize.png?branch=master

类似于python functools.partial,但具有对args和kwargs的更改/扩展访问。 也是一个很好的工具,即使不需要部分,但函数采用的args/kwargs通常依赖于逻辑。

最容易用作装饰器

frompartializeimportpartialize@partializedefdummy(a,b,c=None):return'hello world'partial_dummy=dummy.partial(1)partial_dummy.b=2partial_dummy(c=3)

或调用内联…

partial_dummy=partialize(dummy)partial_dummy.a=1partial_dummy.update(b=2)partial_dummy()partial_dummy(c=3)

在需要逻辑来影响传递参数的函数上使用它,而不是将dict构建并传递为kwargs 它经常变得很凌乱,很难阅读。

dict kwargs示例:

frompartializeimportpartialize@partializedefsearch_products(site,query=None,brand=None,tags=None):passkwargs={}iflogic:kwargs['query']=qifmore_logic:kwargs['brand']='brand name'products=search_products(site,**kwargs)

划分示例:

search=search_products.partial(site)iflogic:search.query=qifmore_logic:search.brand='brand name'products=search()
Note: function argument names are validated when set, unlike dict string keys.

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

推荐PyPI第三方库


热门话题
内存Java分配:从预先存在/分配的池中分配对象   java使超级方法停止实现的方法   java需要算法帮助吗   Java中Eratosthenes的素数筛:一个谜题和一些优化   Json反序列化中的java错误   java编组具有对象字段的对象   java Android 2.2 SDK Droid X摄像头活动未正确完成   java匹配模式,除非匹配为空字符串   本地Java小程序被阻止   java试图从数据库中检索值并使用用户输入进行验证   Java继承:跨包的受保护访问   java多战争到Azure Web应用程序   如何将数组(而不是列表)从groovy传递到java方法中?   如果调用“saveAndFlush”方法,则使用@QueryHints的java JPA缓存不起作用   Android在激活和未激活时通过Java更改EditText重音的颜色