Я ищу способ преобразовать устаревший оператор форматирования строки %
в функцию format()
в коде python3.
ugly = 'Exception: the %s is over %+f' % (t, value)
good = 'Exception: the {} is over {:+f}'.format(e, value)
Конечно, я использую autopep8 при сохранении (через PyDev), но кажется, что нет возможности включить желаемое преобразование. Наиболее близким является вариант W690
:
W690 - Fix various deprecated code (via lib2to3).
Но это не работает, как и явный запуск lib2to3. Любые решения приветствуются; лучше, если инструмент можно будет интегрировать в eclipse/pydev, например autopep8
.
%
интерполяция строк не устарела. Но если вы действительно хотите заменить его чем-то новым, то зачем возиться сformat
, когда вы можете использовать f-строки? Например,f'Exception: the {t} is over {value:+f}'
- person PM 2Ring   schedule 04.10.2016format
- это просто мое предпочтение: я действительно считаю, что это делает код более читаемым и легким для i18n. @ 2Ring, стоит побеспокоиться, если только python 3.6 не выпущен в альфа-версии; но точно, я жду функцию f-string, она выглядит потрясающе - person Sergey Belash   schedule 04.10.2016%
не имеет альтернативы для байтовых объектов. Объекты Bytes не имеют метода.format()
. Так что%
определенно не устарел. - person cdarke   schedule 04.10.2016