2017-11-13 8 views

答えて

1

の反復ごとに呼びかけ取得少しの実験。

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へのパラメータは、多くの他の関数呼び出しのパラメータのように、一度だけを評価されます。

+0

ああ、偉大なイラスト。 –

0

stack_n_queueはコメントで答えたよう:

いいえ、引数として渡された機能にはなりませんfor i in range(min(some_list), max(other_list))を呼び出すことで、あなたの質問に答えることが容易になるrange()

0

rangeオブジェクト/リストが作成される前に関数minmaxが呼び出されます。つまり、関数式の前に引数式が評価されます。

したがって、これらは一度だけ呼び出されます。