В чем смысл указания динамической ширины и точности _после_ аргумента в str.format?Python

Программы на Python
Anonymous
В чем смысл указания динамической ширины и точности _после_ аргумента в str.format?

Сообщение Anonymous »

В языке программирования C ширина и точность динамического поля указываются перед аргументом.

Код: Выделить всё

printf("%.*s", 2, "ABCDEF")
Тем не менее, когда str.format был введен в Python3.0 в 2008 году, ширина и точность динамического поля указываются после аргумента. >

Код: Выделить всё

"{:.{}}".format("ABCDEF", 2)
Почему? Я считаю, что указание ширины динамического поля после аргумента очень сбивает с толку. Есть ли для этого конкретная техническая причина или это предпочтение автора?
(Происхождение моего вопроса заключается в том, что C++ {fmt} также требует динамической ширины поля и точность после аргумента, но C++ является статически типизированным языком. Я предполагаю, что {fmt} слепо следует спецификации Python. Поскольку C++ не типизирован динамически, как Python, я не думаю, что это было правильное решение, поэтому я решил спросить сообщество. об уточнении исходного решения на Python.)
@edit Кстати, я написал автору PEP 3101 и получил ответ, что это было 17 лет назад, а он не помнит и предложил просмотреть список рассылки Python примерно в 2007 году.

Подробнее здесь: https://stackoverflow.com/questions/784 ... er-the-arg

Вернуться в «Python»