本文整理汇总了Python中toolz.functoolz.memoize函数的典型用法代码示例。如果您正苦于以下问题:Python memoize函数的具体用法?Python memoize怎么用?Python memoize使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了memoize函数的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: test_memoize_partial
def test_memoize_partial():
def f(x, y=0):
return x + y
f2 = partial(f, y=1)
fm2 = memoize(f2)
assert fm2(3) == f2(3)
assert fm2(3) == f2(3)
开发者ID:karansag,项目名称:toolz,代码行数:9,代码来源:test_functoolz.py
示例2: test_memoize_wrapped
def test_memoize_wrapped():
def foo():
"""
Docstring
"""
pass
memoized_foo = memoize(foo)
assert memoized_foo.__wrapped__ is foo
开发者ID:AndrewWalker,项目名称:toolz,代码行数:9,代码来源:test_functoolz.py
示例3: test_memoize_curried
def test_memoize_curried():
@curry
def f(x, y=0):
return x + y
f2 = f(y=1)
fm2 = memoize(f2)
assert fm2(3) == f2(3)
assert fm2(3) == f2(3)
开发者ID:karansag,项目名称:toolz,代码行数:10,代码来源:test_functoolz.py
示例4: test_memoize_kwargs
def test_memoize_kwargs():
fn_calls = [0] # Storage for side effects
def f(x, y=0):
return x + y
mf = memoize(f)
assert mf(1) == f(1)
assert mf(1, 2) == f(1, 2)
assert mf(1, y=2) == f(1, y=2)
assert mf(1, y=3) == f(1, y=3)
开发者ID:karansag,项目名称:toolz,代码行数:12,代码来源:test_functoolz.py
示例5: test_memoize
def test_memoize():
fn_calls = [0] # Storage for side effects
def f(x, y):
""" A docstring """
fn_calls[0] += 1
return x + y
mf = memoize(f)
assert mf(2, 3) == mf(2, 3)
assert fn_calls == [1] # function was only called once
assert mf.__doc__ == f.__doc__
开发者ID:JNRowe,项目名称:toolz,代码行数:12,代码来源:test_core.py
示例6: test_memoize
def test_memoize():
fn_calls = [0] # Storage for side effects
def f(x, y):
""" A docstring """
fn_calls[0] += 1
return x + y
mf = memoize(f)
assert mf(2, 3) is mf(2, 3)
assert fn_calls == [1] # function was only called once
assert mf.__doc__ == f.__doc__
assert raises(TypeError, lambda: mf(1, {}))
开发者ID:AndrewWalker,项目名称:toolz,代码行数:13,代码来源:test_functoolz.py
示例7: test_memoize_key_signature
def test_memoize_key_signature():
# Single argument should not be tupled as a key. No keywords.
mf = memoize(lambda x: False, cache={1: True})
assert mf(1) is True
assert mf(2) is False
# Single argument must be tupled if signature has varargs. No keywords.
mf = memoize(lambda x, *args: False, cache={(1,): True, (1, 2): 2})
assert mf(1) is True
assert mf(2) is False
assert mf(1, 1) is False
assert mf(1, 2) == 2
assert mf((1, 2)) is False
# More than one argument is always tupled. No keywords.
mf = memoize(lambda x, y: False, cache={(1, 2): True})
assert mf(1, 2) is True
assert mf(1, 3) is False
assert raises(TypeError, lambda: mf((1, 2)))
# Nullary function (no inputs) uses empty tuple as the key
mf = memoize(lambda: False, cache={(): True})
assert mf() is True
# Single argument must be tupled if there are keyword arguments, because
# keyword arguments may be passed as unnamed args.
mf = memoize(lambda x, y=0: False,
cache={((1,), frozenset((('y', 2),))): 2,
((1, 2), None): 3})
assert mf(1, y=2) == 2
assert mf(1, 2) == 3
assert mf(2, y=2) is False
assert mf(2, 2) is False
assert mf(1) is False
assert mf((1, 2)) is False
# Keyword-only signatures must still have an "args" tuple.
mf = memoize(lambda x=0: False, cache={(None, frozenset((('x', 1),))): 1,
((1,), None): 2})
assert mf() is False
assert mf(x=1) == 1
assert mf(1) == 2
开发者ID:karansag,项目名称:toolz,代码行数:42,代码来源:test_functoolz.py
注:本文中的toolz.functoolz.memoize函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论