當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。