O Python 2.6 introduziu o str.format()
método com uma sintaxe ligeiramente diferente do %
operador existente . Qual é o melhor e para que situações?
A seguir, use cada método e tenha o mesmo resultado. Qual é a diferença?
#!/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!"
Além disso, quando ocorre a formatação de string no Python? Por exemplo, se o meu nível de log estiver definido como HIGH, ainda receberei um resultado para executar a
%
operação a seguir ? E se sim, existe uma maneira de evitar isso?log.debug("some debug info: %s" % some_info)
%
estilo antigo com mais frequência, porque se você não precisar dos recursos aprimorados do format()
estilo, o %
estilo geralmente será muito mais conveniente.
format()
estilo de formatação eo mais velho %
estilo de formatação baseada .