Me tropecé con la siguiente advertencia cuando estaba leyendo Code Like a Pythonista: Idiomatic Python por David Goodger.¿Cómo se puede explotar locals() en código python?
extracto del artículo ...
print('Hello %(name)s, you have %(messages)i messages' % locals())
Esto es muy poderoso. Con esto, usted puede hacer todo el formato de cadena que quiere sin tener que preocuparse por que coincida con los valores de interpolación la plantilla.
Pero la potencia puede ser peligrosa. "Con gran poder viene muy bien responsabilidad". Si utiliza el
locals()
con una cadena de plantilla suministrada externamente , expone todo su espacio de nombre local a la persona que llama. Esto es solo algo a tener en cuenta.
Estoy tratando de comprender los escenarios específicos en el que el uso de locals()
pueden ser peligrosos. Se aprecia cualquier ejemplo de cómo se puede explotar la presencia de locals()
en un código. ¡Gracias!