Seite 1 von 1

argumente von Funktionen

Verfasst: Donnerstag 6. November 2014, 15:16
von möppi
Servus,

Angenommen ich habe eine Funktion:

Code: Alles auswählen

def do_something_with_function(x_array,y_array,function,*arguments,a=default_val1,b=default_val2):
......
function(*arguments)
......
Nun möchte ich die Funktion aufrufen:

Code: Alles auswählen

def some_function(x1,x2,...):
      return f(x1,x2,...)

do_something_with_function(x_array=x,y_array=y,function=some_function,argument1,argument2,argument3,.....,a=irgendein_wert1,irgendein_wert2)
Wie mache ich beim aufrufen deutlich, dass die letzten beiden Argumente nicht zur Funktion gehören? und das nur argument1,.... der Funktion übergeben werden sollen?

Re: argumente von Funktionen

Verfasst: Donnerstag 6. November 2014, 15:27
von Sirius3
@möppi: Du kannst nicht Keyword-Arguments mit Positional-Arguments mischen. Normalerweise werden die Argumente einer Funktion als ein arguments-Tuple übergeben:

Code: Alles auswählen

def do_something_with_function(x_array, y_array, function, arguments, a=default_val1, b=default_val2):
    ...
    function(*arguments)
    ...

def some_function(x1,x2,...):
      return f(x1,x2,...)
 
do_something_with_function(x_array=x, y_array=y, function=some_function, arguments=(argument1,argument2,argument3,.....), a=irgendein_wert1, b=irgendein_wert2)

Re: argumente von Funktionen

Verfasst: Donnerstag 6. November 2014, 15:51
von möppi
Sirius3 hat geschrieben:@möppi: Du kannst nicht Keyword-Arguments mit Positional-Arguments mischen. Normalerweise werden die Argumente einer Funktion als ein arguments-Tuple übergeben:

Code: Alles auswählen

def do_something_with_function(x_array, y_array, function, arguments, a=default_val1, b=default_val2):
    ...
    function(*arguments)
    ...

def some_function(x1,x2,...):
      return f(x1,x2,...)
 
do_something_with_function(x_array=x, y_array=y, function=some_function, arguments=(argument1,argument2,argument3,.....), a=irgendein_wert1, b=irgendein_wert2)
Danke für deine Antwort. Ich habe es jetzt so wie du gemacht, aber aus irgendwelchen Gründen, zeigt mir der Compiler bei der Definition der Funktion do_something_with_function einen Syntax Fehler an. Da steht dann einfach nur die etwas spärliche Fehlermeldung:
SyntaxError: invalid syntax
mit einem Pfeil bei a. Ich dachte das liegt, daran, dass die Zuordnung der Argumente nicht eindeutig ist. Da diese Problem jedoch jetzt umgangen wurde, kann es daran nicht liegen.

Re: argumente von Funktionen

Verfasst: Donnerstag 6. November 2014, 15:56
von Sirius3
@möppi: es wäre gut, wenn Du den entsprechenden Code dazu zeigen würdest.

Re: argumente von Funktionen

Verfasst: Donnerstag 6. November 2014, 15:58
von möppi
Sorry,

Da war eine kleine Dummheit eingebaut. Hat sich erledigt. Danke