Python est très éloigné de la gestion manuelle de la mémoire.
Et ce n'est probablement pas le langage à utiliser si tu veux quelque chose de très fin.
Ici, les variables x et y seront recréées (puis détruites si elles ne sont pas retournées) à chaque appel de la fonction, oui.
Mais avoir des variables d'un scope extérieur et en écraser la valeur reviendraient strictement au même.
Par contre tu pourrais faire un sorte d'avoir un cache dans ta fonction, et de le réinitialiser manuellement quand cela est nécessaire.
Ensuite as-tu une preuve que cette fonction est celle qui ralentit ton code ? As-tu fais des mesures de temps d'exécution ?
Donc clairement ici, on ne peut pas répondre, il faudra l'ensemble de la fonction, avec tes tests, et à partir de là on aura une référence pour améliorer ce temps. À savoir que cela se fait une fois que tu es sûr que ton programme principal tourne. L'optimisation est la dernière étape lors du codage.
oldprogramer , j'ai pas fais de test, mon programme n'est pas fini mais je me poser justement la question en programmant cette fonction.
je n'ai pas besoin de ces fonctions en globale donc je vais les déclarer en locale.
gestion variable / Mémoire
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
entwanne — @entwanne — Un zeste de Python — La POO en Python — Notions de Python avancées — Les secrets d'un code pythonique