【发布时间】:2017-12-14 14:07:46
【问题描述】:
我编写了一个简单的装饰器来缓存值,以防函数调用返回''。有没有比我目前使用的字典更好的方法来存储值?使用hasattr 会更pythonic,如果是这样,如何实现?其他的会更好吗?
def cache(func):
# Caching decorator
# if result is '', return saved value
# else save and return result
saved = {1:''}
@wraps(func)
def newfunc(*args, **kwargs):
result = func(*args, **kwargs)
if result:
saved[1] = result
return result
return saved[1]
return newfunc
【问题讨论】:
-
我不会称它为更 Pythonic,而只是将属性字典传入和传出你的函数?
-
@cᴏʟᴅsᴘᴇᴇᴅ 我不明白你的评论。请改写。
-
{'var1' : val1, 'var2 : val2 }让你的函数接受这个,使用这个,然后返回这个。
标签: python python-2.7 python-decorators