装饰器版高速fibonacci

Categories: Python
@functools.lru_cache()此行为关键 import time from functools import wraps import functools def clock(func): @wraps(func) def clocked(*args, **kwargs): start = time.time() result = func(*args, **kwargs) elapsed = time.time() - start name = func.__name__ args_list = [] if args: args_list.append(','.join(repr(arg) for arg in args)) if kwargs: pairs = ['%s=%r' % (k, w) for k, w in sorted(kwargs.items())] args_list.append(','.join(pairs)) args_str = ','.join(args_list) print('[%0.8fs] %s(%s) -> %r' % (elapsed, name, args_str, result)) return result return clocked @functools.

Read More →