[Python-de] for file in os.listdir(...) pylint W0622

Ulrich Eckhardt doomster at knuut.de
Fr Nov 16 18:16:36 CET 2012


Thomas Guettler wrote:
> for file in os.listdir(...):
>      ...
> 
> pylint meckert nun, dass "file" ein built-in ist und überschrieben wird.
> 
> W0622: Redefining built-in %r Used when a variable or function override
> a built-in.
> 
> Ich stehe nun vor der Frage: Ich ignoriere W0622, oder ich passe meinen
> Code an.

Alternative 3: Upgrade auf Python 3. ;)

Im allgemeinen versuche ich built-ins nicht zu ueberschreiben. Das Problem 
mit der Schleife oben ist ja auch dass "file" nicht auf die Schleife 
beschraenkt ist, wie z.B. in C++, sondern halt im aktuellen Scope 
(funktionslokal oder in einem Namespace). Fuer diesen Fall sind z.B. "f" 
(klein, schnell zu tippen, bei kleinem Nutzungsbereich) oder "path" (passt 
sogar IMHO noch besser als "file") gute Alternativen.


> Mit flymake sieht man Fehler schon beim Tippen:
> https://github.com/akaihola/flymake-python

Ich habe grade hier Geany (http://www.geany.org) im Test, speziell fuer 
Python.

Uli



Mehr Informationen über die Mailingliste python-de