2015-10-26 14 views

risposta

9

Come sottolineato da vaultah (che per qualche motivo non si è preoccupato di postare una risposta), questo era reported on the issue tracker ed è stato modificato da allora. La sintassi funzionerà bene a partire da Python 3.6.

essere esplicito, sì, voglio permettere finale virgola anche dopo *args o **kwds. Ed è quello che fa la patch. - Guido van Rossum

8

La ragione per cui è stato originariamente annullato perché **kwargs era l'ultimo elemento consentito in un elenco di argomenti - niente poteva venire dopo; tuttavia, un , sembra che ci potrebbe essere più seguito.

che ha cambiato in modo che ora possiamo chiamare con più dicts parole chiave:

some_func(a, b, **c, **d,) 

Per l'amor di coerenza, le virgole finali sono ora supportati in entrambe le definizioni e le chiamate di funzioni. Questo è veramente utile quando si hanno diversi argomenti o pochi lunghi argomenti, e quindi la linea logica è divisa su più linee fisiche.

Le virgole sono facoltative in entrambe le posizioni.

+0

Grazie. Sono curioso della parte '** c, ** d'. In che modo Python sa quali argomenti di parole chiave inserire in 'c' e quali in' d'? –

+0

@NiklasR: Siamo spiacenti, ha avuto quella parte sbagliata, risposta aggiornata. –