Pour débugguer, il est parfois utile de savoir qui fait appel à quoi, et avec quels arguments. C’est le rôle du module inspect.
#!/usr/bin/env python # -*- coding: utf-8 -*- import inspect def foo(val): val = val + 1 print "%s: Fonction '%s' appelée par '%s' à la ligne %s" % (inspect.stack()[0][1], inspect.stack()[1][4][0].strip(), inspect.stack()[2][4][0].strip(), inspect.stack()[1][2] ) #print inspect.stack() def essai(val): foo(val) def main(): essai(7) if __name__ == '__main__': main()
et le résultat
test_inspect.py: Fonction 'foo(val)' appelée par 'essai(7)' à la ligne 12
Je le met ici pour le jour où j’en aurai encore besoin