2014-07-14 20 views
45

Cosa significa "/" nell'output help di Python 3.4 per range prima della parentesi di chiusura?Python: cosa significa la barra nell'output di help (range)?

>>> help(range) 
Help on class range in module builtins: 

class range(object) 
| range(stop) -> range object 
| range(start, stop[, step]) -> range object 
| 
| Return a virtual sequence of numbers from start to stop by step. 
| 
| Methods defined here: 
| 
| __contains__(self, key, /) 
|  Return key in self. 
| 
| __eq__(self, value, /) 
|  Return self==value. 

             ... 

risposta

63

significa la fine della positional only parameters, è parametri non si può uso come parametri di parole chiave. Tali parametri possono essere specificati solo nell'API C.

Significa l'argomento key-__contains__ può essere passato solo in base alla posizione (range(5).__contains__(3)), non come un argomento chiave (range(5).__contains__(key=3)), qualcosa che si può che fare con argomenti posizionali nelle funzioni puro-python.

vedere anche la documentazione Argument Clinic:

Per contrassegnare tutti i parametri posizionali-solo in Clinica argomento, aggiungere un / su una riga da solo dopo l'ultimo parametro, rientrate lo stesso come le linee dei parametri.

La sintassi è stata anche definita per una possibile inclusione futura in Python, vedere PEP 457 - Syntax For Positional-Only Parameters. Al momento il PEP funge da riserva per la sintassi, non ci sono piani effettivi per implementarlo come tale.