[Python-de] Schleifen die ohne Durchlaufen des Schleifenkörpers beendet wurden
Sven R. Kunze
srkunze at mail.de
So Apr 10 08:09:54 EDT 2016
Hallo Marco,
On 09.04.2016 07:59, Marco Bakera wrote:
> Sven R. Kunze schrieb am 24.03.2016 um 20:53:
>> neulich hatten wir wieder das Problem, dass wir gerne etwas in der
>> folgenden Art uns gewünscht hätten:
>>
>> for item in collection:
>> # do for item
>> empty:
>> # do when collection is empty
> Könnte man das nicht mit einer IF-Abfrage lösen?
Sicher, wie viele Sprachfeatures. :)
> Warum muss es dafür eine spezielle Syntax geben?
Kleine, nicht notwendigerweise vollständige, Zusammenfassung der
bisherigen Diskussionsbeiträge:
Dafür:
1) tritt recht häufig in bestimmten Anwendungsfeldern auf
2) andere Sprachen besitzen dieses Features
3) man kann ähnlich argumentieren wie bei "for-else"
4) alle bisher vorgestellten Lösungen funktionieren leider nicht 100%
5) je besser die Lösung, desto komplizierter und unwartbarer ist sie
6) Optimierer können besser mit Syntax-Semantik umgehen als mit einer
handgehäkelten Lösung
Dagegen:
1) fehlende sinnvolles Keyword: "empty" ist eher eine Variable, "else"
ist leider vergeben
2) kompliziertere Sprache und erhöhte Wartung des CPython-Quelltexts
Aus meiner Sicht umsetzbare und sinnvoll erscheinende Varianten:
1) verbleibendes Keyword: "not"
2) on-Syntax, vorgeschlagen von Thomas, wobei ich hier auf die
korrespondierenden Exceptions lauschen würde anstelle die
vorgeschlagenen Spezialkonstrukte zu definieren
vG
Sven
Mehr Informationen über die Mailingliste python-de