web-dev-qa-db-de.com

Optimiert Python eine Variable, die nur als Rückgabewert verwendet wird?

Gibt es einen entscheidenden Unterschied zwischen den folgenden beiden Codeausschnitten? Der erste Befehl weist einer Variablen in einer Funktion einen Wert zu und gibt diese Variable zurück. Die zweite Funktion gibt nur den Wert direkt zurück.

Wandelt Python sie in äquivalenten Bytecode um? Ist einer von ihnen schneller?

Fall 1:

def func():
    a = 42
    return a

Fall 2:

def func():
    return 42
106
Jayesh

Beide sind grundsätzlich gleich, nur dass im ersten Fall das Objekt 42 wird einfach einer Variablen mit dem Namen a zugewiesen, oder mit anderen Worten, Namen (d. h. a) beziehen sich auf Werte (d. h. 42). Technisch macht es keine Zuordnung, in dem Sinne, dass es niemals irgendwelche Daten kopiert.

Beim returning wird diese benannte Bindung a im ersten Fall zurückgegeben, während das Objekt 42 ist return im zweiten Fall.

Weitere Informationen finden Sie unter dieser großartige Artikel von Ned Batchelder

3
kmario23