当前位置: 首页>>编程示例 >>用法及示例精选 >>正文


Python dask.rewrite.RewriteRule用法及代码示例

用法:

dask.rewrite.RewriteRule(lhs, rhs, vars=())

重写规则。

表示 lhs -> rhs ,用于变量 vars

参数

lhs任务

重写规则的left-hand-side。

rhs任务或函数

重写规则的right-hand-side。如果是任务,rhs 中的变量将替换为主题中与 lhs 中的变量匹配的术语。如果它是一个函数,则该函数将使用此类匹配项的 dict 调用。

vars: tuple, optional

在 lhs 中找到的变量元组。变量可以表示为任何可散列对象;一个好的约定是使用字符串。如果没有变量,则可以省略。

例子

这是一个 RewriteRule 来替换对 list 的所有嵌套调用,以便将 (list, (list, ‘x’)) 替换为 (list, ‘x’) ,其中 ‘x’ 是一个变量。

>>> import dask.rewrite as dr
>>> lhs = (list, (list, 'x'))
>>> rhs = (list, 'x')
>>> variables = ('x',)
>>> rule = dr.RewriteRule(lhs, rhs, variables)

这是一个更复杂的规则,它使用可调用的right-hand-side。可调用的rhs 接受一个字典,将变量映射到它们的匹配值。如果‘x’ 本身是一个列表,则此规则将所有出现的(list, ‘x’) 替换为‘x’

>>> lhs = (list, 'x')
>>> def repl_list(sd):
...     x = sd['x']
...     if isinstance(x, list):
...         return x
...     else:
...         return (list, x)
>>> rule = dr.RewriteRule(lhs, repl_list, variables)

相关用法


注:本文由纯净天空筛选整理自dask.org大神的英文原创作品 dask.rewrite.RewriteRule。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。