-4

我有一些代码会每十五秒更新一次并返回一个值。

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”时,它都会更新值。我希望能够输出该值而无需更新它。

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

4

2 回答 2

0

gem_price()每次调用时只返回一个 1 到 1000 之间的随机整数。它不存储任何东西。如果要存储此值,只需将其分配给一个变量:value = gem_price()然后使用此变量而不是函数(除非您想要另一个值,但要保留它,您应该将其分配给另一个 var)。顺便说一句,您似乎并不完全了解函数的工作原理。当函数退出时(通常),函数内部的变量会被删除。此外,执行流程在return语句之后停止,因此您print永远不会到达,因此永远不会执行。

您应该阅读Python 教程的这一部分。其实,都是。

于 2014-02-05T19:28:18.123 回答
0

如果你想每 15 秒打印一次值,你可以使用这个:

import time

while True: 
    ...
    Yourcode
    ...
    print('The answer is....', answer)
    time.sleep(15)
于 2013-09-29T11:46:44.613 回答