私はtime.time()
関数のいくつかの動作でちょっと混乱しています。私がちょうど無知であるかどうか不思議です。連続した同じ行の関数呼び出しとアンパック
さてさて、私は、私は解凍して2つの機能を割り当てることができます知っているが、このように呼び出す:
>>> 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が1時間本当に速いされていたと思ったので、私はそれを倍の多くを試してみました:
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()と2番目のtime.time()は同じです - 同じ時点で評価されます」 - それはどのように動作するかではありません。 – user2357112
@ user2357112それでは「それは機能しますか」?タプルアンパックの例では、それらも連続して評価されていますか? – blacksite