Dado:Python interpolación de cadenas utilizando el diccionario y cuerdas
dict = {"path": "/var/blah"}
curr = "1.1"
prev = "1.0"
¿Cuál es la mejor manera/más corto para interpolar la cadena para generar el siguiente:
ruta:/var/bla Curr: 1.1 prev : 1,0
sé que esto funciona:
str = "path: %(path)s curr: %(curr)s prev: %(prev)s" % {"path": dict["path"],"curr": curr, "prev": prev}
Pero yo estaba esperando que hay un camino más corto, como por ejemplo:
str = "path: %(path)s curr: %s prev: %s" % (dict, curr, prev)
Mis disculpas si esto parece una cuestión excesivamente pedante.
Evitar utiliza de gente() y globales() :( – dzen
@dzen Por qué evitar los locales()? He intentado buscar este consejo en otro lugar y no estoy encontrando mucho. – bradreaves
Uso de ' locals() 'significa que no está claro qué variables es en realidad. Si quisiera insertar su código, pylint bien podría informar que algunas variables no se usaron aunque las haya referenciado implícitamente con' locals() '. Pylint tendría para examinar todas las instrucciones de formato de cadena para dicho uso implícito. Por lo tanto, es un atajo cuyas implicaciones debe comprender antes de usar. – hughdbrown