Was ist eine erstklassige Funktion in Python?

7

Ich bin immer noch verwirrt darüber, was first-class functions sind. Wenn ich richtig verstehe, sollte first-class functions eine Funktion als Objekt verwenden. Ist das korrekt?

Ist das ein first-class function ?

%Vor%     
rwrwerwer 10.12.2014, 02:31
quelle

6 Antworten

13

Eine erstklassige Funktion ist keine besondere Art von Funktion. Alle Funktionen in Python sind erstklassige Funktionen. Zu sagen, dass Funktionen in einer bestimmten Programmiersprache erstklassig sind, bedeutet, dass sie ähnlich wie andere Objekte (wie ganze Zahlen oder Strings) weitergegeben und manipuliert werden können. Sie können einer Variablen eine Funktion zuweisen, sie als Argument an eine andere Funktion übergeben usw. Die Unterscheidung besteht nicht darin, dass einzelne Funktionen erste Klasse sein können oder nicht, sondern dass ganze Sprachen Funktionen als erstklassige Objekte behandeln können oder auch nicht .

    
BrenBarn 10.12.2014 02:35
quelle
8

"First-Class Functions" (FCF) sind Funktionen, die als so genannte "First-Class Citizens" (FCC) behandelt werden. FCCs in einer Programmiersprache sind Objekte (die den Begriff "Objekte" hier sehr frei verwenden), die:

  • Kann als Parameter verwendet werden
  • Kann als Rückgabewert verwendet werden
  • Kann Variablen zugewiesen werden
  • Kann in Datenstrukturen wie Hashtabellen, Listen, ...
  • gespeichert werden

Tatsächlich, sehr grob und einfach ausgedrückt, sind FCFs Variablen vom Typ 'Funktion' (oder Variablen, die auf eine Funktion zeigen). Sie können mit ihnen alles tun, was Sie mit einer 'normalen' Variable tun können.

Wenn Sie dies wissen, sind sowohl this_is_another_example(myarg) als auch this_is_example(myarg1) First-Class Functions, da all Funktionen in bestimmten Programmiersprachen First-Class sind.

    
Timusan 10.12.2014 02:39
quelle
3

Nein. Sie sprechen über Funktionen höherer Ordnung - siehe .

Erstklassige Funktionen: Wenn eine Funktion einer Variablen zugewiesen oder als Objekt / Variable an eine andere Funktion übergeben werden kann, wird diese Funktion als First-Class-Funktion aufgerufen.

Python, JavaScript und C (Zeiger) unterstützen erstklassige Funktionen.

Ein einfaches Beispiel (in Python):

%Vor%

Dieses Programm dient nur zur Illustration.

    
Nelson_Sequiera 24.02.2017 21:01
quelle
1
%Vor%

Oben ist ein Beispiel für die First-Class-Funktion in Python.

    
MHK 18.05.2017 07:15
quelle
0

Jede Funktion in Python ist erste Klasse, weil sie wie jedes andere Objekt weitergegeben werden kann.

    
f.rodrigues 10.12.2014 03:07
quelle
-1

First Class-Funktionen in Python

  

Erstklassige Objekte in einer Sprache werden durchgehend einheitlich behandelt.   Sie können in Datenstrukturen gespeichert, als Argumente übergeben oder verwendet werden   Kontrollstrukturen. Eine Programmiersprache soll unterstützen   Erstklassige Funktionen, wenn es Funktionen als erstklassige Objekte behandelt.   Python unterstützt das Konzept der First-Class-Funktionen.

Eigenschaften von Funktionen erster Klasse:
Eine Funktion ist eine Instanz des Objekttyps.
 - Sie können die Funktion in einer Variablen speichern.  - Sie können die Funktion als Parameter an eine andere Funktion übergeben.  - Sie können die Funktion von einer Funktion zurückgeben.  - Sie können sie in Datenstrukturen wie Hashtabellen, Listen, ... speichern.

Beispiele zur Veranschaulichung von First-Class-Funktionen in Python 1. Funktionen sind Objekte: Python-Funktionen sind erstklassige Objekte. Im folgenden Beispiel weisen wir einer Variablen eine Funktion zu. Diese Zuweisung ruft die Funktion nicht auf. Es nimmt das Funktionsobjekt, auf das von shout verwiesen wird, und erstellt einen zweiten Namen, der darauf verweist, yell.

%Vor%

Ausgabe:
Hallo! HALLO

  1. Funktionen können als Argumente an andere Funktionen übergeben werden: Da Funktionen Objekte sind, können wir sie als Argumente an andere Funktionen übergeben. Funktionen, die andere Funktionen als Argumente annehmen können, werden auch Funktionen höherer Ordnung genannt. Im folgenden Beispiel haben wir eine Funktion greet erstellt, die eine Funktion als Argument übernimmt.
%Vor%

Ausgabe:
HI, ICH BIN VON EINER FUNKTION ALS ARGUMENT GESTELLT Hallo, ich bin von einer Funktion als Argument übergeben.

  1. Funktionen können eine andere Funktion zurückgeben: Da Funktionen Objekte sind, können wir eine Funktion von einer anderen Funktion zurückgeben. Im folgenden Beispiel gibt die Funktion create_adder die Addierfunktion zurück.
%Vor%

Ausgabe:
25

    
shanu khera 01.08.2017 13:57
quelle