2014-07-14 2 views
45

Was bedeutet die / in Python 3.4 help Ausgabe für range vor der schließenden Klammer bedeuten?Python: Was bedeutet der Schrägstrich in der Ausgabe von 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. 

             ... 

Antwort

63

Es bedeutet das Ende der positional only parameters, Parameter Sie kann nicht Verwendung als Keyword-Parameter. Solche Parameter können nur in der C-API angegeben werden.

Es bedeutet das key Argument __contains__ kann nur von Position übergeben werden (range(5).__contains__(3)), nicht als Schlüsselwort-Argument (range(5).__contains__(key=3)), etwas, das man kann in pure-Python-Funktionen mit Positionsargumenten tun.

Auch die Argument Clinic Dokumentation:

alle Parameter markieren als Positions-only in Argumente Clinic, ein / auf einer Linie von selbst nach dem letzten Parameter hinzufügen, eingekerbt die gleichen wie die Parameterzeilen.

Die Syntax wurde auch für mögliche zukünftige Aufnahme in Python definiert, siehe PEP 457 - Syntax For Positional-Only Parameters. In dem Moment, in dem die PEP als Reservierung für die Syntax dient, gibt es keine Pläne, sie als solche zu implementieren.