我對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