类方法在dask中是纯的吗?
这在Dask中是否有效使用了类方法在dask中是纯的吗?,dask,Dask,这在Dask中是否有效使用了pure 假设在计算过程中,bar从未更改,但在我设置计算时它可能会更改 from dask import delayed class a: def __init__(self): self.bar = 1 def foo(self, b): return self.bar + b def dask_foo(self, b): return delayed(self.foo, pure=Tru
pure
假设在计算过程中,bar
从未更改,但在我设置计算时它可能会更改
from dask import delayed
class a:
def __init__(self):
self.bar = 1
def foo(self, b):
return self.bar + b
def dask_foo(self, b):
return delayed(self.foo, pure=True)(b)
是的,这是有效的用法:您有效地断言了
bar
属性(它不是延迟函数的参数)不会因任何后续调用而更改。当你说某个东西是“纯的”时,Dask假设每次调用参数b=5
都会得到相同的结果。
请注意,如果多次使用相同的b
值调用dask_foo
,则每次生成的延迟对象的键都是相同的。如果您有pure=False
,则每次都会得到一个随机的UUID部分
在这种情况下,您显然可以通过更改
条的值来打破自己的断言:不要这样做 因此,它可以在图形执行之前更改,但不能在图形执行时更改。谢谢