【问题标题】:Update Python global time variable using time.time() doesn't work使用 time.time() 更新 Python 全局时间变量不起作用
【发布时间】:2015-08-12 22:55:57
【问题描述】:

由 time.time() 创建的变量不应该是不可变的,对吧?因此,我应该能够将其更改为其他内容。我在执行此操作时遇到了问题,而且 .sleep() 方法似乎没有帮助。

我将变量 e 设置为当前时间。我打印 e。然后我使用函数更新变量 e。然后我打印 e。两个打印的值应该不同,但它们不是。如何正确更新“全局”变量 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 不是不可变的,但它不会随着新的赋值语句而改变(即使在调用函数之前 [外部或内部] 存在时间延迟)。

我期待这样的输出

e is 1432940101.000643
1432940102.120643

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

【问题讨论】:

标签: python-2.7 datetime global-variables sleep


【解决方案1】:

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

但是,如果我要在 uu 中放置一个 print 语句,那么带有该函数范围的 e 将具有不同的值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-30
    • 1970-01-01
    • 1970-01-01
    • 2022-11-14
    • 1970-01-01
    • 2022-12-20
    • 2021-11-14
    • 2013-07-13
    相关资源
    最近更新 更多