Как параметризовать спецификацию формата string.format ()? - PullRequest
2 голосов
/ 21 января 2012

У меня есть переменная line_number_max_digits, и я хочу использовать ее в спецификации формата строки как width токен.Я придумал следующий код:

print ('{0:>%d}: {1}' % line_number_max_digits).format(lineno + i, chunk)

Но я понимаю, что процентное форматирование со временем уйдет из Python.Я мог бы использовать string.Template или использовать format два раза, но это сделало бы мой код менее понятным:

print ('{{0:>{0}}}: {{1}}').format(line_number_max_digits).format(lineno + i, chunk)

Какой способ считается хорошей практикойв таких ситуациях?

1 Ответ

2 голосов
/ 21 января 2012

Вложенная поддержка ограничена.

Пример

print('{1:>{0}}: {2}'.format(line_number_max_digits, lineno + i, chunk))
...