使用time.time()更新Python全局时间变量并不起作用

时间:2015-05-29 23:02:13

标签: python-2.7 datetime global-variables sleep

time.time()创建的变量不应该是不可变的,对吧?因此,我应该能够将其改为其他东西。我在执行此操作时遇到了麻烦,并且看起来像.sleep()方法有帮助。

我将变量e设置为当前时间。我打印e。然后我使用函数更新变量e。然后我打印e。两个印刷值应该不同,但它们不是。如何实现对" global"的正确更新?变量e?

import time

e = time.time()
print ('e is %f') %e

time.sleep(1.12)
def uu(x):
    #time.sleep(2)
    x = time.time()

uu(e)
print ('%f') %e

无论何时延迟时间,e的两张照片都完全相同。但是,我将e传递给函数,并且e不是不可变的,但它并没有随新的赋值语句而改变(即使在函数调用[外部或内部]之前有一段时间延迟)。 / p>

我期待像

这样的输出
e is 1432940101.000643
1432940102.120643

第一个值与第二个值相差任何数量。

1 个答案:

答案 0 :(得分:0)

这是一个范围/命名空间问题。 e 是全局声明的。即使我 e 传递给函数 uu,也不会改变 e 的全局定义值。

但是,如果我在 uu 中放置一个打印语句,那么具有该函数作用域的 e 将具有不同的值。