Je crée une solution de marché de base très basique qui serait utilisée dans les magasins de paris. J'ai une fonction qui ressemble à ceci:Comment sauter les arguments optionnels dans python, et appeler directement les arguments
def create_market(name, match, providerID=str(uuid.uuid4()), market_kind=4, *market_parameters):
Je veux appeler une fonction avec seulement name
, match
et market_parameters
tout en sautant le providerID
et market_kind
(puisque ceux-ci sont en option)
Gardez à l'esprit que *market_parameters
sera un tuple de dicts qui seront envoyés à l'intérieur de la fonction. Je déballe comme:
for idx, data in enumerate(args):
for k, v in data.iteritems():
if 'nWays' in k:
set_value = v
Quand je mets ce dict comme
market_parameters = {'nWays' : 5}
et appeler une fonction comme create_market('Standard', 1, *market_parameters)
Je ne peux pas sembler obtenir les données à l'intérieur du corps de la fonction.
Qu'est-ce que je fais mal?
* "' * market_parameters' le seront être un dict * * - tuple, pour les paramètres de position; '** kwargs' serait le dictionnaire. – jonrsharpe
@jonrsharpe oui, c'est correct :) J'allais écrire que * market_parameters sera un nombre inconnu de dicts qui seraient passés en liste (tuple) dans une fonction. – mutantkeyboard