Это printf
-style formating.
Правильный операнд %
может быть кортежем или словарем (или другим отображением).
При использовании кортежа %d
, %s
, .... заменяются соответствующим артикулом по порядку.
При использовании словаря %(key)d
, %(key)s
, ... заменяются значением соответствующего key
в словаре.
Например,
>>> FORMAT = '%(asctime)-15s %(clientip)s %(user)-8s %(message)s'
>>> FORMAT % {'asctime': '2017-02-11', 'clientip': '1.2.3.4',
'user': 'who', 'message': 'blah'}
'2017-02-11 1.2.3.4 who blah'
Использование %(key)d
/словаря имеет некоторые преимущества:
- Вам не нужно указывать спецификатор формата в порядке.
- Вы можете повторить тот же ключ несколько раз:
'%(num)d + %(num)d = %(double)d' % {'num': 3, 'double': 3 * 2}
Очень приятно, спасибо –