2012-07-06 13 views
15

Cosa significa un singolo * senza identificatore negli argomenti della funzione Python? Ecco un esempio che funziona con Python3.2:Cosa significa un singolo * senza identificatore nelle funzioni di Python3?

class Shape: 
    def __init__(self, *, shapename, **kwds): 
     self.shapename = shapename 
     super().__init__(**kwds) 

Per me la stella dopo l'auto è strano.

ho trovato qui (riga 46): http://code.activestate.com/recipes/577720-how-to-use-super-effectively/

+1

Punti extra per colui che punta al PEP;) (Ricordo di aver letto un frammento di un PEP che lo descrive, ma non riesco a ricordare dove, o cosa fosse, **/me torna a Google **) – KurzedMetal

risposta

13

Il lone * indica che tutti i seguenti argomenti sono parola-solo argomenti, cioè, possono essere forniti solo usando il loro nome, non come posizionale discussione.

Vedere PEP 3102 per ulteriori dettagli.

+1

In altre parole: 'shapename' deve essere esplicitamente aggiunto quando si crea un nuovo oggetto' Shape', come 'Shape (shapename = 'Circle')' – KurzedMetal

Problemi correlati