2017-08-31 1 views
-3

Der Gültigkeitsbereich einer Funktion entspricht dem Gültigkeitsbereich einer Variablen in Python. Wie zum Beispiel haben wir globale, lokale und nicht-lokale Geltungsbereich für eine Variable, gibt es so etwas wie globale, lokale und nicht lokale Funktion?Was sind die Python-Funktionen?

Antwort

2

Es gibt keinen Unterschied. Eine Funktion ist ein Objekt erster Klasse und kann wie jedes andere Objekt an einen Namen gebunden werden. Namen haben Bereiche in Python.


Eine def Anweisung ähnelt einer Zuweisungsanweisung; Es erstellt ein Funktionsobjekt und bindet dann einen Namen an diese Zuweisung. Zum Beispiel sind die folgenden sehr ähnlich:

def foo(): 
    return 3 

foo = lambda: 3 

def nicht unbedingt notwendig ist, obwohl, da es keine Möglichkeit gibt, eine beliebige Funktion mit einem Ausdruck allein zu definieren. (Der Rumpf eines lambda Ausdrucks muss ein einzelner Ausdruck sein, während der Körper einer def Anweisung eine willkürliche Liste von Anweisungen sein kann.)

+2

** TL; DR **: ** _ Namen _ ** haben Bereiche, nicht _objects_. –