Найти - Пользователи
Полная версия: Почему в Python нет интерполяции строк?
Начало » Python для новичков » Почему в Python нет интерполяции строк?
1 2 3
afiskon
То есть можно писать:

"Hello, {0}!".format("world")

Но нельзя так:

temp = "world"
"Hello, $temp!"

Честно, не холивара ради. Мне хотелось бы узнать, возможно в этом есть какой-то глубокий философский смысл.
Shaman
Есть там всё.
FishHook
Shaman
Есть там всё.
Где????
Shaman
>>> temp = "world"
>>> "Hello, {temp}!".format(**globals())
'Hello, world!'
>>> 
afiskon
Shaman
это называется “можно подпереть” а не “есть”
Shaman
Для самых привередливых её собираются впилить более полно. Недавно тут обсуждалось.
Что и зачем, не знаю. Имхо, питон идёт не туда.
ihorgorobets
afiskon
возможно в этом есть какой-то глубокий философский смысл.
Это не дает быдлокодерам плодить дыры
py.user.next
afiskon
Почему в Python нет интерполяции строк?
А что ты называешь интерполяцией строк? Дай определение.
Shaman
Если интерпретировать только литералы, дыр не будет, но польза под вопросом.
old_monty
afiskon
То есть можно писать:

“Hello, {0}!”.format(“world”)

Но нельзя так:

temp = “world”
“Hello, $temp!”

Честно, не холивара ради. Мне хотелось бы узнать, возможно в этом есть какой-то глубокий философский смысл.
Кроме истинно объектного стиля вызова метода format() класса str, “глубокий философский смысл”, imho состоит в том, чтобы при выводе на печать не валить в одну кучу строковые литералы и переменные. А если при печати требуется указывать также и спецификации форматирования, то преимущество от такого разделения будет еще больше:
pi = 3.14159
print('Один формат: {0:f}, другой: {1:.2f}, третий: {2:05.2f}'.format(pi, pi, pi))
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