範囲パラメータの関数を使用すると、毎回呼び出されますか?ループの繰り返しごとにrange()のパラメータが再評価されますか?
for i in range(min(some_list), max(other_list)):
...
範囲パラメータの関数を使用すると、毎回呼び出されますか?ループの繰り返しごとにrange()のパラメータが再評価されますか?
for i in range(min(some_list), max(other_list)):
...
の反復ごとに呼びかけ取得少しの実験。
In [294]: def foo(n):
...: print('in foo')
...: return n
...:
In [295]: for i in range(foo(5)):
...: print(i)
...:
in foo
0
1
2
3
4
だから、はい、range
へのパラメータは、多くの他の関数呼び出しのパラメータのように、一度だけを評価されます。
ああ、偉大なイラスト。 –
stack_n_queueはコメントで答えたよう:
いいえ、引数として渡された機能にはなりませんfor i in range(min(some_list), max(other_list))
を呼び出すことで、あなたの質問に答えることが容易になるrange()
range
オブジェクト/リストが作成される前に関数min
とmax
が呼び出されます。つまり、関数式の前に引数式が評価されます。
したがって、これらは一度だけ呼び出されます。
いいえ。一度呼び出されます。 –
早速のお返事ありがとうございます! –