Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.python > #4343

Re: [Python-de] Schleifen die ohne Durchlaufen des Schleifenkörpers beendet wurden

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>

Show all headers | View raw


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


Thread

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