Найти - Пользователи
Полная версия: PEP 0498 -- Literal String Formatting
Начало » Обсуждение новостей » PEP 0498 -- Literal String Formatting
1 2 3
ZZZ
JOHN_16, да ну и пофиг, не? Возможность писать код в принципе не безопасна.

Rodegast, раньше писали в машинных кодах, потом на асме, потом на си, затем вот питон придумали… Задолбали!
Shaman
Если для таких строк заведут новый тип, или интерпретироваться будут только константные значения, тогда почему бы и нет.
JOHN_16
ZZZ
да в общем то наверное пофиг. Посмотрим. Время покажет будет ли это предпочтительнее нежели format
Shaman
Shaman
константные значения
В питоне ? константы? Точно?
ZZZ
JOHN_16, не будет оно предпочтительнее. Это, всё-таки, различные механизмы. Но я точно знаю места, где новый вариант будет рулить и педалить по полной. По крайней мере в своих проектах.
Shaman
JOHN_16
В питоне ? константы? Точно?
Если бы я сказал “литералы”, реакция была бы менее бурной? Да я и говорил о константных значениях, а не о константах.
JOHN_16
Shaman
Да неее, не бурная она вовсе =)
Ок.
Shaman
Значит мне показалось. )
PooH
ZZZ
SQL-инъекции? Да ладно! А сегодня с format инъекций не бывает?
sql-инъекции для примера, еще возможно отображение закрытых данных из контекста на веб странице.
Просто, для меня лично, предпочтителен вариант когда все по умолчанию закрыто, и все открывать надо явно. Видимо профессиональная деформация :)

ZZZ
Если у кого-то не хватает ума так не делать, то это, как мне кажется, не проблемы языка.
Ой, да ладно. Если бы я был умный тогда, как моя жена потом. Все и регулярно наступают на грабли, и от ума тут немного зависит. У всего есть отрицательные и положительные стороны, но в данном PEP, мне кажется, небольшое удобство не стоит потенциальных проблем.
ZZZ
PooH, вот мне кажется, что в данном pep очень приличное удобство. Например, для написания сообщений в лог или внятных эксцепшенов – самое то! Я прямо представляю, как всё сразу станет понятнее, когда не придётся писать этот “format”.
py.user.next
FishHook
как работает этот формат
FishHook
Что в итоге получим в списке?
Она вычисляется в рантайме - то есть при каждом выполнении кода (как при обычном формате).

>>> def f(x, n):
...     return ('{0}' * n).format(x)
... 
>>> f(1, 2)
'11'
>>> f(3, 4)
'3333'
>>>

А источником (по задумке) должен быть только фиксированный код, чтобы избежать взятия содержимого строки непонятно откуда.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB