2010-10-19 12 views
22

Wenn Quellcode von Django zu lesen, finde ich einige Aussagen:Was bedeutet "_" in Python?

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") 

Ich weiß, es Beschreibung als ‚Integer‘ eingestellt, aber nicht verstehen, die Syntax: description = _("Integer").
Kann jemand helfen?

+0

möglich Duplikat [\ _ als Variablennamen in Python] (http://stackoverflow.com/questions/1739514/as-variable-name-in-python) –

Antwort

6

dies für gettext-Funktion verwendet wird, wie here beschrieben

utf-8 von django ist gut, so behandelt Django es als Unicodetext wie beschrieben here

+0

hab es geschafft, danke für die detailmeldung! :) – Beyonder

13

keine Antwort auf Ihren Fall aber das allgemeinere „Was ist die Bedeutung von‚_‘in Python?“:

In interaktiven Modus, ein _ wird das letzte Ergebnis zurück, die nicht eine Variablen zugewiesen wurde

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

Nicht sicher, aber es scheint, als ob jeder Ausdruck, der keiner Variablen zugewiesen ist, tatsächlich _ zugewiesen ist.

+4

Es scheint, dass es eine andere Verwendung von '_' im Python-Programm gibt. wie: I_need, _, I_need_2 = ('a', 'b', 'c'); In diesem Fall interessiert Sie der zweite Wert im Tupel nicht, deshalb sparen Sie sich Zeit, um einige Variablennamen für diese nutzlosen Werte zu entwickeln, die den Code leichter lesbar machen. – Beyonder

+0

@Beyonder: True, aber in diesem Fall handelt es sich wie jede andere Variable, nur mit dem Namen "_" zu sagen, "Ich bin eine Wegwerf-Variable". –

+0

ist es das Matlab-Äquivalent von "ans"? – David

0

_ zeigt die letzte gültige Ausgabe auf dem Bildschirm an. Das System speichert standardmäßig eine Kopie der Ausgabe in dieser Variablen _. Es gilt nicht für die Zeichenfolge, die mit der Druckfunktion gedruckt wird, sondern für die in der Variablen gespeicherte Zeichenfolge.

enter image description here