2014-10-28 8 views
6
>>> print(len.__doc__) 
len(module, object) 

Return the number of items of a sequence or mapping. 
>>> len(os, 1) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: len() takes exactly one argument (2 given) 

Beachten Sie die zwei Parameter in der ersten Zeile des Docstring.Was ist "Modul" im Docstring von len?

Wann würden Sie zwei Argumente an len übergeben? Ist der Docstring falsch? Ich benutze Python 3.4.0.

+2

Für mich 'Druck (len .__ doc __)' Drucke ** len (Objekt) Return die Anzahl der Elemente einer Sequenz oder Sammlung. ** – falsetru

+0

@falsetru Das ist komisch. Welche Version von Python benutzt du? – rightfold

+0

Ich benutze Python 3.4.2 – falsetru

Antwort

9

Dies war ein Fehler am 2014-04-18 here eingereicht. Es wurde seitdem in 3.4.1 behoben.

Zitiert Vedran Čačić, der ursprüngliche Autor des Bug-Report:

From recently, help(len) gives the wrong signature of len. 

Help on built-in function len in module builtins: 

len(...) 
    len(module, object) 
     ^^^^^^^^ 
    Return the number of items of a sequence or mapping. 
+1

[Python 3.5.0 Alpha 1] (https://github.com/python/cpython/blob/master/Python/bltinmodule.c#L1836) enthält auch zwei Argumente in 'len()' s Docstring, aber der Docstring ist etwas anders und das Modul-Objekt wird überhaupt nicht verwendet. –