mirror of
https://github.com/QuantumPackage/qp2.git
synced 2024-11-03 20:53:54 +01:00
18 lines
330 B
Python
18 lines
330 B
Python
|
from functools import wraps
|
||
|
|
||
|
def cache(func):
|
||
|
"""
|
||
|
A decorator for lazy evaluation off true function
|
||
|
"""
|
||
|
saved = {}
|
||
|
|
||
|
@wraps(func)
|
||
|
def newfunc(*args):
|
||
|
if args in saved:
|
||
|
return saved[args]
|
||
|
|
||
|
result = func(*args)
|
||
|
saved[args] = result
|
||
|
return result
|
||
|
return newfunc
|