Che cosa significa il codice *
nel seguente codice (trovato nella libreria pprint
)?Cosa significa una stella * da sola in una dichiarazione di funzione?
def pformat(object, indent=1, width=80, depth=None, *, compact=False):
"""Format a Python object into a pretty-printed representation."""
return PrettyPrinter(indent=indent, width=width, depth=depth,
compact=compact).pformat(object)
Se era *args
allora sarebbe un numero arbitrario di parametri posizionali. I valori dei parametri si trovano nella tupla denominata args
. I primi 4 parametri possono essere assegnati per nome o per posizione, il parametro compact
può essere assegnato solo per nome ...
Bene, NO! Perché non è d'accordo con the documentation:
In una chiamata di funzione, argomenti a parola chiave devono seguire posizionali argomenti.
Quindi, cosa fa la stella dopo e prima di altri argomenti con nome? E come è usato? O perché è lì se non viene utilizzato?
Grazie. Nella domanda ho fatto riferimento alla pagina di documentazione di Python 2, ma la frase citata si trova anche nel 3. – stenci