% '%s' 'somestring'

Вот несколько примеров, взятых от django-basic-apps:

# self.title is a unicode string already
def __unicode__(self):
        return u'%s' % self.title

# 'q' is a string
search_term = '%s' % request.GET['q']

Какой смысл этого строкового форматирования?

5
задан yanchenko 15 January 2010 в 03:45
поделиться

5 ответов

Это просто моя привычка. В этих случаях в этом нет необходимости.

3
ответ дан 14 December 2019 в 19:14
поделиться

На первый взгляд, он не выглядит разумным, но у него выгодно заставить результат быть строкой (или строкой Unicode), а не все, что было бы от. Еще один способ сделать то же самое, можно позвонить str в аргументе формата (или Unicode).

1
ответ дан 14 December 2019 в 19:14
поделиться

Может быть, автор используется для строго набранных языков, и он пропускает его в Python, и это его способ сделать Python более строго напечатанным, чем оно.

Здесь - сделать типы входных / выходных параметров очистки только для читателя , поскольку при условии, что все работает, как ожидалось, это просто бесполезно для Python .

0
ответ дан 14 December 2019 в 19:14
поделиться

Вам, вероятно, лучше спросить Натан Боррор , автор. Это может быть просто личным стилем.

Django использует прокси-объекты для строк в некоторых случаях, поэтому может заставить их «фактические» строки. Я верю, что эти прокси предназначены для целей I18N / L10N (не процитируйте меня на этом, также могут быть, чтобы избежать поиска БД до необходимости или ряда других причин).

1
ответ дан 14 December 2019 в 19:14
поделиться

Другая идея: Может быть, это сделано с возможными будущими реализациями в уме? Self.title и request.get.get [...] в настоящее время уже нужный тип, но детали реализации могут измениться в будущем, и они могут перестать быть строкой Unicode или строкой.

Теперь я бы использовал str () и Unicode (), хотя ...

0
ответ дан 14 December 2019 в 19:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: