2014-01-24 70 views
2

我在字符串之前的某些代碼中看到_用_作爲前綴的python字符串,它是什麼?

lable = _("Password")

是什麼意思?有人告訴我這是支持多語言的。我在互聯網上沒有發現任何東西來確認這一點...

非常感謝您的幫助。

。 --update-- 謝謝,@ thg435,看到你的文字後,我發現究竟是什麼:

from django.utils.translation import ugettext, ugettext_lazy as _ 

' - ' 是一個速記......

+0

@PuffinGDI:不是那個意思。 –

+0

@PuffinGDI這種情況有點不同。 – aIKid

+0

謝謝大家。我學到更多。這是我的誤解。 –

回答

2

按照該docs,一個有效的Python標識符可以是這樣

identifier ::= (letter|"_") (letter | digit | "_")* 

它可以是任何有效的表達式,從一個或letter_,然後它可以有字母,數字或_。因此,_是Python中的有效變量名稱。你的代碼看起來像一個函數調用,其中函數的名稱是_。例如,

def _(arg): 
    print arg 

_("Password") 

將打印

Password 
6

名稱_通常被定義爲一個別名gettext.gettext,看到http://docs.python.org/2/library/gettext.html瞭解詳情。 是的,這是國際化。

但是,由於_是一個有效的標識符(因此也是一個函數名),它可以用於其他目的。這完全取決於程序員。

相關問題