python中'_'的含义是什么?

时间:2010-10-19 10:05:45

标签: python django syntax

在阅读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") 有人可以提供帮助吗?

4 个答案:

答案 0 :(得分:27)

请阅读国际化(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

答案 1 :(得分:13)

不是你的案例的答案,而是更一般的“python中'_'的含义是什么?”:

交互模式中,_将返回未分配给变量的最后结果

>>> 1 # _ = 1
1
>>> _ # _ = _
1
>>> a = 2
>>> _
1
>>> a # _ = a
2
>>> _ # _ = _
2
>>> list((3,)) # _ = list((3,))
[3]
>>> _ # _ = _
[3]

不确定,但似乎每个未分配给变量的表达式实际上都已分配给_

答案 2 :(得分:6)

这用于gettext函数,如here

所述

django的Utf-8支持很好,所以django将其作为unicodetext处理,如here所述

答案 3 :(得分:0)

_表示屏幕上的最后一次有效输出。系统默认情况下将输出的副本存储到此_变量。它不适用于使用print函数打印的字符串,但我存储了存储在变量中的字符串。

enter image description here