Ich erstelle eine sehr einfache Match-Market-Lösung, die in Wettshops verwendet würde. Ich habe eine Funktion, die wie folgt aussieht:Wie man optionale Argumente in Python überspringt und * args direkt aufruft
def create_market(name, match, providerID=str(uuid.uuid4()), market_kind=4, *market_parameters):
Ich möchte mit name
nur eine Funktion aufzurufen, match
und market_parameters
während die providerID
Skipping und market_kind
(da diese optional sind)
Beachten Sie, dass *market_parameters
wird ein Tupel von Diktaten sein, die innerhalb der Funktion gesendet werden. Ich packe es wie:
for idx, data in enumerate(args):
for k, v in data.iteritems():
if 'nWays' in k:
set_value = v
Als ich dieses dict gesetzt wie
market_parameters = {'nWays' : 5}
und rufen eine Funktion wie create_market('Standard', 1, *market_parameters)
Ich kann nicht die Daten innerhalb der Funktion Körper zu bekommen scheinen.
Was mache ich falsch?
* "' * market_parameters' wird sei ein Diktat "* - Tupel, für Positionsparameter; '** Kwargs' wäre das Wörterbuch. – jonrsharpe
@jonrsharpe ja, das ist richtig :) Ich wollte schreiben, dass * market_parameters eine unbekannte Anzahl von Dicts sein wird, die als Liste (Tupel) in eine Funktion übergeben werden. – mutantkeyboard