Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 6, 2015 10:39:18

afiskon
Зарегистрирован: 2015-11-05
Сообщения: 8
Репутация: +  1  -
Профиль  

Почему в Python нет интерполяции строк?

То есть можно писать:

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

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

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

Честно, не холивара ради. Мне хотелось бы узнать, возможно в этом есть какой-то глубокий философский смысл.

Офлайн

#2 Ноя. 6, 2015 11:19:33

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

Почему в Python нет интерполяции строк?

Есть там всё.

Офлайн

#3 Ноя. 6, 2015 11:22:39

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Почему в Python нет интерполяции строк?

Shaman
Есть там всё.
Где????



Офлайн

#4 Ноя. 6, 2015 11:36:10

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

Почему в Python нет интерполяции строк?

>>> temp = "world"
>>> "Hello, {temp}!".format(**globals())
'Hello, world!'
>>> 

Офлайн

#5 Ноя. 6, 2015 11:50:02

afiskon
Зарегистрирован: 2015-11-05
Сообщения: 8
Репутация: +  1  -
Профиль  

Почему в Python нет интерполяции строк?

Shaman
это называется “можно подпереть” а не “есть”

Офлайн

#6 Ноя. 6, 2015 12:32:26

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

Почему в Python нет интерполяции строк?

Для самых привередливых её собираются впилить более полно. Недавно тут обсуждалось.
Что и зачем, не знаю. Имхо, питон идёт не туда.

Офлайн

#7 Ноя. 6, 2015 12:35:49

ihorgorobets
Зарегистрирован: 2015-11-01
Сообщения: 11
Репутация: +  -1  -
Профиль   Отправить e-mail  

Почему в Python нет интерполяции строк?

afiskon
возможно в этом есть какой-то глубокий философский смысл.
Это не дает быдлокодерам плодить дыры



Second France is best France

Офлайн

#8 Ноя. 6, 2015 12:39:45

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10016
Репутация: +  857  -
Профиль   Отправить e-mail  

Почему в Python нет интерполяции строк?

afiskon
Почему в Python нет интерполяции строк?
А что ты называешь интерполяцией строк? Дай определение.



Офлайн

#9 Ноя. 6, 2015 12:40:11

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

Почему в Python нет интерполяции строк?

Если интерпретировать только литералы, дыр не будет, но польза под вопросом.

Офлайн

#10 Ноя. 6, 2015 17:12:08

old_monty
Зарегистрирован: 2015-09-27
Сообщения: 238
Репутация: +  20  -
Профиль   Отправить e-mail  

Почему в Python нет интерполяции строк?

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))

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version