部分使用类固醇的蟒蛇
partialize的Python项目详细描述
部分使用类固醇的Python
类似于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.