Comment faire du Monkeypatching en Python ?
-
09-06-2019 - |
Question
J'ai dû faire une introspection en python et ce n'était pas joli :
name = sys._getframe(1).f_code
name = "%s:%d %s()" %(os.path.split(name.co_filename)[1],name.co_firstlineno,name.co_name)
Pour obtenir quelque chose comme
foo.py:22 bar() blah blah
Dans notre sortie de débogage.
Je voudrais idéalement appliquer quoi que ce soit à Stderr avec ce type d'informations - est-il possible de modifier le comportement de l'impression à l'échelle mondiale dans Python?
La solution
Une instruction d'impression effectue ses E/S via "sys.stdout.write" afin que vous puissiez remplacer sys.stdout si vous souhaitez manipuler le flux d'impression.
Autres conseils
Le python inspecter Le module rend cela beaucoup plus facile et plus propre.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow