Übergabe einer Funktion

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Kopflos
User
Beiträge: 8
Registriert: Mittwoch 9. November 2011, 11:40

Hallo,

möglich das man zu meiner Frage sehr viel im Internet findet jedoch weiß ich nicht so richtig nach was ich suchen soll.
Ich habe das Problem dass ich bei einer Klasse sozusagen eine ganze Funktion übergeben will.
Ich schreibe gerade einen Optimierungsalgorithmus und möchte da eine Funktion übergeben. Das ganze soll dann ungefähr so funktionieren wie der optimierer bei scipy.

Danke schonmal
Benutzeravatar
gkuhl
User
Beiträge: 600
Registriert: Dienstag 25. November 2008, 18:03
Wohnort: Hong Kong

Hallo,

meinst du so etwas:

Code: Alles auswählen

In [1]: class Klasse:
   ...:     def __init__(self, function):
   ...:         self.function = function
   ...:         

In [2]: a = Klasse(sum)

In [3]: a.function([1,2,3])
Out[3]: 6
Grundsätzlich gilt, dass man jedes Objekt (eine Funktion ist ein Objekt) an eine Funktion übergeben kann.

Grüße
Gerrit
BlackJack

@Kopflos: Und das Problem dabei ist nun genau!? Funktionen sind in Python Objekte, genau wie alles andere dem man einen Namen geben kann. Man kann eine Funktion also wie jedes andere Objekt auch, als Argument an eine Funktion übergeben.
Kopflos
User
Beiträge: 8
Registriert: Mittwoch 9. November 2011, 11:40

Ja, entschuligt für die Frage. Mein Problem war einfach, dass ich nicht galuben konnte dass es so einfach geht!
Aber danke für die schnelle hilfe.
Antworten