Подтвердить что ты не робот

Какое значение "_" в 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").
Может ли кто-нибудь помочь в этом?

4b9b3361

Ответ 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

_ указывает последний действительный выход на экране. Система по умолчанию хранит копию вывода этой переменной _. Это не относится к строке, которая печатается с использованием функции печати, но я сохраняю для строки, хранящейся в переменной.

введите здесь описание изображения