Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.python > #4343
| From | Daniel Troeder <daniel@admin-box.com> |
|---|---|
| Newsgroups | de.comp.lang.python |
| Subject | Re: [Python-de] Schleifen die ohne Durchlaufen des Schleifenkörpers beendet wurden |
| Date | 2016-03-30 09:42 +0200 |
| Message-ID | <mailman.180.1459323761.28225.python-de@python.org> (permalink) |
| References | <56F445C9.3000200@mail.de> <56F939CE.8050601@admin-box.com> <56F99A06.4060002@sschwarzer.net> |
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.
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).
Gruß
Daniel
Back to de.comp.lang.python | Previous | Next | Find similar
Re: [Python-de] Schleifen die ohne Durchlaufen des Schleifenkörpers beendet wurden Daniel Troeder <daniel@admin-box.com> - 2016-03-30 09:42 +0200
csiph-web