我有一些代码会每15秒更新一次并返回一个值。
def set_interval(func, sec):
def func_wrapper():
set_interval(func, sec)
func()
t = threading.Timer(sec, func_wrapper)
t.start()
return t
def gem_price():
return random.randint(1,1000)
print ("Updated")
set_interval(gem_price, 15)
稍后在代码中,我想输出函数'gem_price'返回的值。我一直在做的方法是打印函数本身。
print(gem_price())
我遇到的问题是,每次使用此方法输出'gem_price'时,它都会更新该值。我想能够输出值而无需更新它。
有没有办法做到这一点?提前谢谢!
答案 0 :(得分:0)
如果您想每15秒打印一次,可以使用:
import time
while True:
...
Yourcode
...
print('The answer is....', answer)
time.sleep(15)
答案 1 :(得分:0)
gem_price()
每次调用时只返回1到1000之间的随机整数。它不存储任何东西。
如果要存储此值,只需将其分配给变量:value = gem_price()
然后使用此变量而不是函数(除非您需要其他值,但为了保留它,您应该将其分配给另一个var)。
顺便说一下,你似乎并不完全理解功能是如何工作的。当函数退出时(通常),函数内部的变量将被删除。此外,执行流程在return
语句之后停止,因此永远不会到达print
,因此从未执行过。
您应该阅读this part of the Python tutorial。实际上,所有这一切。