Python 2.6 ha introdotto il str.format()
metodo con una sintassi leggermente diversa %
dall'operatore esistente . Qual è la migliore e per quali situazioni?
Quanto segue utilizza ogni metodo e ha lo stesso risultato, quindi qual è la differenza?
#!/usr/bin/python sub1 = "python string!" sub2 = "an arg" a = "i am a %s" % sub1 b = "i am a {0}".format(sub1) c = "with %(kwarg)s!" % {'kwarg':sub2} d = "with {kwarg}!".format(kwarg=sub2) print a # "i am a python string!" print b # "i am a python string!" print c # "with an arg!" print d # "with an arg!"
Inoltre, quando si verifica la formattazione delle stringhe in Python? Ad esempio, se il mio livello di registrazione è impostato su ALTO, avrò comunque un colpo per eseguire la seguente
%
operazione? E se è così, c'è un modo per evitarlo?log.debug("some debug info: %s" % some_info)
%
più spesso lo stile più vecchio , perché se non hai bisogno delle migliori capacità dello format()
stile, lo %
stile è spesso molto più conveniente.
format()
stile di formattazione e il vecchio %
stile di formattazione based .