Je suis tombé sur l'avertissement suivant lorsque je lisais Code Like a Pythonista: Idiomatic Python par David Goodger.Comment les locals() peuvent-ils être exploités en code python?
Extrait de l'article ...
print('Hello %(name)s, you have %(messages)i messages' % locals())
Ceci est très puissant. Avec cela, vous pouvez faire tout le formatage de chaîne voulez sans avoir à vous soucier de correspondant aux valeurs d'interpolation à le modèle.
Mais l'alimentation peut être dangereuse. "Avec une grande puissance vient grande responsabilité." Si vous utilisez le
locals()
à partir d'un chaîne de modèle fournie en externe, vous exposer l'intégralité de votre espace de noms local à l'appelant. C'est juste quelque chose à garder à l'esprit.
Je suis en train de comprendre les scénarios spécifiques dans lequel l'utilisation locals()
peut être dangereux. Des exemples de la manière dont la présence de locals()
dans un code peut être exploitée sont appréciés. Merci!