Python 2.6 представил str.format()
метод с немного отличающимся синтаксисом от существующего %
оператора. Что лучше и для каких ситуаций?
Следующее использует каждый метод и имеет тот же результат, так в чем же разница?
#!/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!"
Кроме того, когда происходит форматирование строки в Python? Например, если мой уровень ведения журнала установлен на ВЫСОКИЙ, я все равно получу удар для выполнения следующей
%
операции? И если так, есть ли способ избежать этого?log.debug("some debug info: %s" % some_info)
%
чаще использую старый стиль, потому что, если вам не нужны улучшенные возможности format()
стиля, %
стиль часто намного удобнее.
format()
стиля форматирования и более старого %
стиля форматирования .