Какое значение "_" в python?
При чтении исходного кода Django я нахожу несколько операторов:
class Field(object):
"""Base class for all field types"""
__metaclass__ = LegacyConnection
# Generic field type description, usually overriden by subclasses
def _description(self):
return _(u'Field of type: %(field_type)s') % {
'field_type': self.__class__.__name__
}
description = property(_description)
class AutoField(Field):
description = _("Integer")
Я знаю, что это описание задано как "Целое", но не понимаю синтаксис: description = _("Integer")
.
Может ли кто-нибудь помочь в этом?
Ответы
Ответ 1
Пожалуйста, прочтите информацию о интернационализации (i18n)
http://docs.djangoproject.com/en/dev/topics/i18n/
_
- это часто используемое имя для функции, которая переводит строки на другой язык.
http://docs.djangoproject.com/en/dev/topics/i18n/translation/#standard-translation
Кроме того, прочитайте все эти связанные вопросы о SO:
https://stackoverflow.com/search?q=%5Bdjango%5D+i18n
Ответ 2
Не ответ на ваш случай, но более общий "Что означает" _ "в python?":
В интерактивном режиме a _
вернет последний результат, который не был присвоен переменной
>>> 1 # _ = 1
1
>>> _ # _ = _
1
>>> a = 2
>>> _
1
>>> a # _ = a
2
>>> _ # _ = _
2
>>> list((3,)) # _ = list((3,))
[3]
>>> _ # _ = _
[3]
Не уверен, но кажется, что каждое выражение, которое не назначено переменной, фактически присваивается _
.
Ответ 3
это используется для функции gettext, как описано здесь
Поддержка utf-8 django хороша, поэтому django обрабатывает ее как unicodetext, как описано здесь
Ответ 4
_ указывает последний действительный выход на экране. Система по умолчанию хранит копию вывода этой переменной _. Это не относится к строке, которая печатается с использованием функции печати, но я сохраняю для строки, хранящейся в переменной.
введите здесь описание изображения