Python est si dynamique que ce qui se passe dans un grand programme n'est pas toujours clair, et regarder un tout petit peu de code source n'aide pas toujours. Pour aggraver les choses, les éditeurs ont tendance à avoir un support médiocre pour naviguer vers les définitions de jetons ou importer des instructions dans un fichier Python. Une façon de compenser pourrait être d'écrire un profileur spécial qui, au lieu de chronométrer le programme, enregistrerait les types d'exécution et les chemins des objets du programme et exposerait ces données à l'éditeur.Quelle est la meilleure façon d'enregistrer le type de chaque affectation de variable dans un programme Python?
Ceci pourrait être mis en œuvre avec sys.settrace() qui définit une fonction de rappel pour chaque ligne de code et est ainsi pdb est mis en oeuvre, ou en utilisant le module de ast et un crochet d'importation pour instrument le code, ou est-il un meilleur stratégie? Comment écririez-vous quelque chose comme ça sans le rendre incroyablement lent et sans courir le risque d'un dynamisme extrême, par exemple des effets secondaires sur l'accès à la propriété?
Qu'est-ce qui ne va pas avec la rupture d'un "grand" programme en fonctions plus petites et en définitions de classe, de sorte que l'examen d'un tout petit peu de code source peut aider? Quel est le problème avec la décomposition et le refactoring? Pourquoi ces techniques ne fonctionneront-elles pas? –
Le système sur lequel je travaille n'est pas "deux semaines à refactoriser". C'est "quelques années pour refactoriser" grand. Je n'ai pas ce genre de temps. – joeforker