【发布时间】:2017-06-18 12:15:07
【问题描述】:
我想创建一个变量,每次查询时都会返回不同的值。
这是我目前所拥有的:
import datetime
def getVal():
return datetime.datetime.now().time()
TMP_VAR = lambda: getVal()
for a in range(0,10):
print TMP_VAR()
这行得通,我得到:
13:06:41.799504
13:06:41.800129
13:06:41.800139
13:06:41.800145
13:06:41.800161
13:06:41.800167
13:06:41.800173
13:06:41.800179
13:06:41.800184
13:06:41.800190
然而,TMP_VAR 现在是一个函数。有没有办法让它以下列方式工作?
print TMP_VAR
实际上,将可调用函数链接到变量。所以每次我将我的TMP_VAR 传递给另一个函数时,它总是会重新评估并恰好持有一个新值(无论getVal() 函数当时返回什么)。
【问题讨论】:
-
似乎没有简单的解决方案。使用
TMP_VAR()而不是TMP_VAR似乎比必须实施基于class的方法更好。