Seite 1 von 1

Übergabe einer Funktion

Verfasst: Dienstag 22. November 2011, 09:50
von Kopflos
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

Re: Übergabe einer Funktion

Verfasst: Dienstag 22. November 2011, 10:02
von gkuhl
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

Re: Übergabe einer Funktion

Verfasst: Dienstag 22. November 2011, 10:03
von 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.

Re: Übergabe einer Funktion

Verfasst: Dienstag 22. November 2011, 10:21
von Kopflos
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.