ある関数が別の関数を呼び出しているかどうかをプログラムで判断するにはどうすればよいですか? どちらの機能も変更できません。
これが私が欲しいものです(source_calls_target
):
>>> def check():
>>> pass
>>> def test_check():
>>> check()
>>> def source_calls_target(source, target):
>>> # if source() calls target() somewhere, return True
>>> ???
>>> source_calls_target(test_check, check)
True
>>> source_calls_target(check, test_check)
False
理想的には、実際に呼び出したくありませんtarget()
。
target()
理想的には、 への呼び出しが の定義内にあるかどうかを確認したいと考えていsource
ます。条件文によっては、実際に呼び出される場合と呼び出されない場合があります。