プログラムのデバッグに pdb を使用しています。「c」を連続して押してコードを実行すると、各ステップで pdb が実行された行を表示します。
このコードがあるとしましょう:
def foo(bar):
print(bar)
foo('hey')
まず、4 行目で関数 foo を呼び出します。次に、pdbは私に行を示します
def foo(bar)
実行されます。
なんで?その行は単なるラベルのようなものではありませんか? 「print(bar)」が実行される前に何が起こるか? (別の 's' ヒットが付属しています)
編集:実際に定義をチェックすることを実験しました。実際、foo がジェネレーター (そのような方法で呼び出すことはできません) であった場合でも、python はそこに到達し、それをジェネレーター (または場合によっては関数..) として扱うことを決定します。