我对time.time()
函数的某些行为有点困惑,并且对我是否只是无知而感到好奇。连续,同线函数调用与解包
好了,所以我知道我可以解压和分配两个函数调用是这样的:
>>> import time
>>> beg, end = time.time(), time.time()
>>> beg == end
True
这种平等是有道理的,因为在执行的时候,第一time.time()
和第二time.time()
是相同的 - 他们在同一时间点进行评估。
更重要的是混乱的是:
>>> beg = time.time(); end = time.time()
>>> beg == end
True
这种平等,我觉得很奇怪。我猜time.time()
只能舍入到7位小数,也许Python的速度足以在小于0.0000001秒内执行这两个命令(我的直觉告诉我这是这种情况)。我认为这是平等的,也许只是Python的是一个时间真快,所以我尝试了很多次:
for _ in range(10000):
beg = time.time(); end = time.time()
assert beg == end
对于我来说,这引起了不AssertionError
。这是什么交易? Python比我信任它更快吗?我的假设是,;
-分隔陈述连续评估,但不是同时(因此我惊讶beg
从来没有不等于end
)。
编辑:
这里是time.time()
回报我,用我的机器的规格一起:
Python 3.6.0 (v3.6.0:41df79263a11, Dec 23 2016, 07:18:10) [MSC v.1900 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> import time
>>> time.time()
1508532204.5873115
>>> time.time()
1508532250.9893117
这对我来说每一次的假。你真的从'time.time()'中得到了什么?你的系统时间是多少?它实际上是在滴答滴答吗? – user2357112
此外,“在执行的时候,第一个选定了time.time()和第二了time.time()是相同的 - 他们在同一时间点评估” - 这不是它是如何工作的。 – user2357112
@ user2357112如何“它的工作”呢?在元组解包的例子中,它们是否也被连续评估? – blacksite