读取函数返回的值而不更新它?

时间:2013-09-29 11:33:37

标签: python

我有一些代码会每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'时,它都会更新该值。我想能够输出值而无需更新它。

有没有办法做到这一点?提前谢谢!

2 个答案:

答案 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。实际上,所有这一切。