【发布时间】: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
第一个值与第二个值相差任意数量。
【问题讨论】:
-
e是一个名字。它指的是time.time()函数返回的float对象。即使浮点数在 Python 中不是不可变的,您的代码也不会更改e。查看图片Python has "names" 并查看Facts and Myths about Python names and values。如果您阅读俄语,请参阅this answer。如果不清楚,请更新您的问题。 -
@JFSebastian :从您的评论(在查看链接之前)看来,您是在说“uu(e)”在浮点数上调用该函数,而不是在浮点数上调用该函数,因此这不起作用。
标签: python-2.7 datetime global-variables sleep