1. ホーム
  2. python

[解決済み] なぜアーリーリターンは他より遅いのか?

2022-04-18 14:54:43

質問

に対するフォローアップの質問です。 数日前の回答 . 編集する その質問のOPは、私が投稿したコードを使ってすでに質問しているようです。 同じ質問 しかし、私はそれに気づいていませんでした。申し訳ございません。回答は違いますが

実質的に私はそれを観察した。

>>> def without_else(param=False):
...     if param:
...         return 1
...     return 0
>>> def with_else(param=False):
...     if param:
...         return 1
...     else:
...         return 0
>>> from timeit import Timer as T
>>> T(lambda : without_else()).repeat()
[0.3011460304260254, 0.2866089344024658, 0.2871549129486084]
>>> T(lambda : with_else()).repeat()
[0.27536892890930176, 0.2693932056427002, 0.27011704444885254]
>>> T(lambda : without_else(True)).repeat()
[0.3383951187133789, 0.32756996154785156, 0.3279120922088623]
>>> T(lambda : with_else(True)).repeat()
[0.3305950164794922, 0.32186388969421387, 0.3209099769592285]

...言い換えれば、「Subject::」があること。 else 節に関係なく速くなります。 if

python

Python 2.7.2+ (default, Oct 4 2011, 20:06:09) [GCC 4.6.1] on linux2