List Parameter Funktionen übergeben

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
TobiFrischling
User
Beiträge: 13
Registriert: Dienstag 6. Februar 2018, 10:33

Freitag 9. Februar 2018, 12:33

Ist es mögliche bspw in einer Liste als Elemente Funktionen zu übergeben

Bspw

g= [[g1(x)=1],[g2(x)=x]]
Benutzeravatar
kbr
User
Beiträge: 931
Registriert: Mittwoch 15. Oktober 2008, 09:27

Freitag 9. Februar 2018, 13:04

Zwar weiß ich nicht, was Du genau willst, aber alleine schon einem Funktionsaufruf einen Wert zuweisen zu wollen, wie es in Deiner Liste geschieht, ist nicht möglich (und auch nicht sinnvoll).
TobiFrischling
User
Beiträge: 13
Registriert: Dienstag 6. Februar 2018, 10:33

Freitag 9. Februar 2018, 13:05

Ansatz:
def g0(x):
return 1
....

g=[g0,g1..]

Ich glaub so müsste es gehen
Benutzeravatar
DeaD_EyE
User
Beiträge: 219
Registriert: Sonntag 19. September 2010, 13:45
Wohnort: Hagen
Kontaktdaten:

Freitag 9. Februar 2018, 15:32

Ja

Code: Alles auswählen

def foo2(x):
    return x**2

def foo3(x):
    return x**3

function_list = [foo2, foo3, foo2, foo3]

for n, func in enumerate(function_list, start=1):
    print('Iteration:', n)
    print('func({}) => {}'.format(n, func(n)))
Du kannst alle möglichen Objekte in Listen, Tupel, Set, Dict packen.
Funktionen und Klassen sind auch Objekte. Veränderbare (mutable) Objekte,
lassen sich nicht als key in dicts bzw. als Element in sets verwenden.

Code: Alles auswählen

def do_something1(x):
    return x * 10

def do_something2(x):
    return x ** 10

def do_something3(x):
    return x ** 100

selector = {
    'incomming': do_something1,
    'change': do_something2,
    'stop': do_something3,
    }

# funktion einem Namen zuweisen
# und aufrufen
signal = 'incomming'
func = selector[signal]
print(func(42))
sourceserver.info - sourceserver.info/wiki/ - Support für HL2-Server
Antworten