it-swarm.com.de

Was ist der Zweck der einzelnen Unterstrich "_" -Variable in Python?

Was bedeutet _ nach for in diesem Code?

if tbh.bag:
   n = 0
   for _ in tbh.bag.atom_set():
      n += 1
557
alwbtc

_ hat in Python 4 Hauptanwendungen:

  1. Zum Speichern des Ergebnisses des zuletzt ausgeführten Ausdrucks (/ statement) in einer interaktiven Interpretersitzung. Dieser Präzedenzfall wurde vom Standard-CPython-Interpreter festgelegt, und andere Interpreter sind diesem Beispiel gefolgt
  2. Für die Übersetzungssuche in i18n (siehe zum Beispiel gettext Dokumentation), wie in Code wie: raise forms.ValidationError(_("Please enter a correct username"))
  3. Als allgemeiner "Wegwerf" -Variablenname, der angibt, dass ein Teil eines Funktionsergebnisses absichtlich ignoriert wird (konzeptionell wird es verworfen.), Wie in Code wie: label, has_label, _ = text.partition(':').
  4. Als Teil einer Funktionsdefinition (entweder mit def oder lambda), bei der die Signatur festgelegt ist (z. B. durch eine Rückruf- oder übergeordnete Klassen-API), für diese bestimmte Funktionsimplementierung jedoch nicht alle Funktionen erforderlich sind Parameter, wie in Code wie: callback = lambda _: True

(Lange Zeit wurden in dieser Antwort nur die ersten drei Anwendungsfälle aufgelistet, aber der vierte Fall kam, wie bereits erwähnt, häufig genug vor hier , um eine explizite Auflistung wert zu sein.)

Die letzteren Verwendungsfälle für "Wegwerfvariable oder Parametername" können mit dem Verwendungsfall für die Übersetzungssuche in Konflikt stehen. Daher ist es erforderlich, _ nicht als Wegwerfvariable in einem Codeblock zu verwenden, der sie auch für die i18n-Übersetzung verwendet (viele Leute) bevorzugen einen doppelten Unterstrich, __, als Wegwerfvariable (genau aus diesem Grund).

703
ncoghlan

Es ist nur ein Variablenname, und es ist in python üblich, _ für Wegwerfvariablen zu verwenden. Es zeigt nur an, dass die Schleifenvariable nicht tatsächlich verwendet wird.

182
gsteff

Unterstrich _ wird in Python als "ist mir egal" oder "Wegwerf" -Variable betrachtet

  • Der Interpreter python speichert den letzten Ausdruckswert in der speziellen Variablen _.

    >>> 10 
    10
    
    >>> _ 
    10
    
    >>> _ * 3 
    30
    
  • Der Unterstrich _ wird auch zum Ignorieren der spezifischen Werte verwendet. Wenn Sie die spezifischen Werte nicht benötigen oder die Werte nicht verwendet werden, weisen Sie die Werte einfach dem Unterstrich zu.

    Ignoriere einen Wert beim Auspacken

    x, _, y = (1, 2, 3)
    
    >>> x
    1
    
    >>> y 
    3
    

    Ignoriere den Index

    for _ in range(10):     
        do_something()
    
61
Ashish Sahu

Es gibt 5 Fälle für die Verwendung des Unterstrichs in Python.

  1. Zum Speichern des Wertes des letzten Ausdrucks im Interpreter.

  2. Zum Ignorieren der spezifischen Werte. (so genanntes "Es ist mir egal")

  3. Besondere Bedeutungen und Funktionen für die Bezeichnung von Variablen oder Funktionen geben.

  4. Verwendung als "Internationalization (i18n)" - oder "Localization (l10n)" -Funktion.

  5. Zum Trennen der Ziffern des Zahlenliteralwerts.

hier ist ein netter Artikel mit Beispielen von mingrammer .

16
Reck