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()
стилю форматування та більш старого %
стилю форматування .