Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.python > #4344
| From | "Diez B. Roggisch" <deets@web.de> |
|---|---|
| Newsgroups | de.comp.lang.python |
| Subject | Re: [Python-de] Schleifen die ohne Durchlaufen des Schleifenkörpers beendet wurden |
| Date | 2016-03-30 10:27 +0200 |
| Message-ID | <mailman.181.1459326784.28225.python-de@python.org> (permalink) |
| References | <56F445C9.3000200@mail.de> <56F939CE.8050601@admin-box.com> <56F99A06.4060002@sschwarzer.net> <56FB8367.8050406@admin-box.com> |
[Multipart message — attachments visible in raw view] - view raw
> On 30 Mar 2016, at 09:42, Daniel Troeder <daniel@admin-box.com> wrote:
>
> On 03/28/2016 10:54 PM, Stefan Schwarzer wrote:
>> On 2016-03-28 16:03, Daniel Troeder wrote:
>>> for item in list():
>>> print item
>>> if "item" not in locals():
>>> print "empty"
>>>
>>> Voraussetzung ist, dass der Variablenname ("item") nicht schon vorher im
>>> gleichen oder übergeordneten scope verwendet wird.
>>
>> technisch mag das gehen, aber für mich sieht das
>> ziemlich "hackish" aus. Ich würde eine direktere
>> Lösung (wie einige der vorgestellten) bevorzugen.
> Hehe - ja das ist etwas "hackish" :)
>
> In der Realität halte ich mich an "so gut lesbar/explizit wie möglich",
> vor allem wenn es nichts idiomatisches gibt wie hier.
>
> Ich würde 1. immer überlegen ob am Konstrukt nicht prinzipiell etwas
> falsch ist, wenn eine leere Liste speziell behandelt werden muss.
Das ist es oft nicht im Kontext zB von HTML-Generierung (der OP hat ja auch Templating angesprochen) wo zwischen “Ihre Suche nach Weihnachtseiern hat 10 Ergebnisse” und “Leider nichts gefunden” unterschrieden wird.
> Und 2. wenn es so ist, dann immer entweder vor der Schleife mit "if not
> liste: return foo()" aus der Funktion springen oder wenn es danach
> weiter gehen soll die Schleife in if-else einpacken.
> Ist nicht elegant aber unmissverständlich und sicher(TM).
Das geht eben nicht immer, wie schon vorher ausgefuehrt: “if not liste” nimmt an, das liste einen Wahrheitswert hat, der sich entsprechend verhaelt. Das geht aber nicht zB bei einem geoeffneten File, das leer ist. Da werden keine Zeilen herauskommen, aber “if mein_file” ist trotzdem wahr.
Diez
Back to de.comp.lang.python | Previous | Next | Find similar
Re: [Python-de] Schleifen die ohne Durchlaufen des Schleifenkörpers beendet wurden "Diez B. Roggisch" <deets@web.de> - 2016-03-30 10:27 +0200
csiph-web