global variable in for Schleife

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Leonidas hat geschrieben:
DasIch hat geschrieben:
Hyperion hat geschrieben:Hm... dann müßte "file" aber fast immer überschrieben werden.
``file`` sollte man sowieso nicht benutzen es sei den man erbt davon.
Welche builtins überschreibst du denn üblicherweise?
``id`` und ``file`` als einfache Namen. ``all`` überschreibe ich manchmal mit einer Funktion die False zurück gibt wenn das iterable leer ist, wenn ich mich dabei erwische mehrmals ``all(foo) and foo`` zu schreiben.

EDIT: Fehler korrigiert, danke BlackJack
Zuletzt geändert von DasIch am Dienstag 20. Oktober 2009, 20:34, insgesamt 1-mal geändert.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

DasIch hat geschrieben:
Leonidas hat geschrieben:Welche builtins überschreibst du denn üblicherweise?
``id`` und ``file`` als einfache Namen. ``all`` überschreibe ich manchmal mit einer Funktion die False zurück gibt wenn das iterable leer ist, wenn ich mich dabei erwische mehrmals ``all(foo) or foo`` zu schreiben.
"file" finde ich einen äußerst unglücklichen Namen aus. Dieser sagt genau nichts aus. Da würde ich lieber einen Namen wählen, welcher Aussagt, was in der Datei drin ist, oder was rein soll.
"all" mit einem anderen Verhalten zu überschreiben ist auch sehr unglücklich. Ich würde nicht erwarten, dass "all" auf einmal bei leeren Listen ein anderes Ergebnis liefert.
Das Leben ist wie ein Tennisball.
BlackJack

@DasIch: Bist Du sicher, dass Du nicht ``foo and all(foo)`` meintest!? Denn ``all(foo) or foo`` ergibt bei leerem `foo` auch `True`.
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

EyDu hat geschrieben:"file" finde ich einen äußerst unglücklichen Namen aus. Dieser sagt genau nichts aus. Da würde ich lieber einen Namen wählen, welcher Aussagt, was in der Datei drin ist, oder was rein soll.
Wenn ich in ``Config.__init__`` eine Datei öffne und parse muss ich die nicht auch noch ``config_file`` nennen, dass ist redundant.

@Blackjack: Jetzt nicht mehr :oops:
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Um mal nach all diesem Gerede über Namen auf die eigentliche Frage zurückzukommen:
m6T hat geschrieben:Designfehler?
Ja.

Das ganze sollte so aussehen:

Code: Alles auswählen

hauptspeise, brutto, netto = lies_hauptspeise("whatever")
...
def lies_hauptspeise(whatever):
    ...
    return row.hauptspeise, row.brutto, row.netto
Noch besser wäre, ein Objekt mit passenden Attribute zu benutzen.

Stefan
Benutzeravatar
str1442
User
Beiträge: 520
Registriert: Samstag 31. Mai 2008, 21:13

Für Dateiobjekte benutze ich (sofern durch den Kontext ersichtlich ist, was für ein Dateiobjekt das ist) "fp". Nicht nur fand ich das öfters in anderem Python Code, aber auch in C benutzt man diesen Namen wohl oft - das macht ihn recht eindeutig. Steht für "file pointer".
Antworten