Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.python > #4384
| Path | csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail |
|---|---|
| From | Stefan Schwarzer <sschwarzer@sschwarzer.net> |
| Newsgroups | de.comp.lang.python |
| Subject | Re: [Python-de] Link zu python-ideas "Control Flow - Never Executed Loop Body" |
| Date | Sat, 9 Apr 2016 09:33:43 +0200 |
| Lines | 50 |
| Message-ID | <mailman.109.1460187540.2253.python-de@python.org> (permalink) |
| References | <57040A52.9020404@thomas-guettler.de> <F355D502-7753-4583-AABF-325BB68D2143@zopyx.com> <5704A110.4030006@behnel.de> <6E439C3C-FC40-4CAA-827C-8ACDE3DC85F2@zopyx.com> <57051734.6020207@thomas-guettler.de> <57051C5F.1080808@chrisarndt.de> <570553C5.80101@sschwarzer.net> <57055E23.40602@inqbus.de> <57058FD3.90400@mail.de> <5705FBB9.4040301@sschwarzer.net> <5706660B.3030905@thomas-guettler.de> <5708B057.9090405@sschwarzer.net> |
| Mime-Version | 1.0 |
| Content-Type | text/plain; charset=windows-1252 |
| Content-Transfer-Encoding | 8bit |
| X-Trace | news.uni-berlin.de OdAN7n/cZQxrWYN+oxqj4Aan5YjwhpMaKcbH/MsIgLMA== |
| Return-Path | <sschwarzer@sschwarzer.net> |
| X-Original-To | python-de@python.org |
| Delivered-To | python-de@mail.python.org |
| X-Enigmail-Draft-Status | N1110 |
| User-Agent | Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.24) Gecko/20100411 Thunderbird/2.0.0.24 Mnenhy/0.7.6.666 |
| In-Reply-To | <5706660B.3030905@thomas-guettler.de> |
| X-Provags-ID | V03:K0:RJHupe6srTh5ox6/65B+kDmdEQwZh5zfJ0q80LfUI8LbXBLReXv 8pQf0PaGTv5S60Zl7sFKu9rH0PO2UPfPR28Mimi/f9foHZTXy/HQHvl1hZC7k8t05wvoDeZ rWKJd9bBguekwY2M4mAF5JNpvicKZ1OAwQHWg/AMcCukIpmZFXPrEjYqteMzDh7rwzOkAEg C33wYC7YjfCUA/MnYZh7Q== |
| X-UI-Out-Filterresults | notjunk:1;V01:K0:6wrtBFb3zrU=:wZn47KMU/3aL9C+5KSar98 bYEE2IoIJ5vacJc/r79FP53PJgUue3GtEob4BAJ9h/WYj68WCOJ/bnS74RZVa8kdaM+f+JMn5 ZQOJcU8DQGcVLtTo+1LjyPwYmBXD6YvdgBbpF4cy/P3RpXtU7CHH8dRlHtMpqUUxr6nUE085A yxHIdUj1AmT4Ij4g2L1W+G9vuQUpZt8OfXcMUG4KCbSOaVV5PCOlreyNbgSZxy8aa17QvfjpW F7ltDqAyf6U/4SW1jgt5MEb3YWcTJxCfK7CsMZ6AdNIKtoOCnLml8RWDOkanvhgR8SlZQY2lN mnACZAR6jKIYRfwUtVXMKdNVJKz5eoJ10Znmgl9EeLnI0f8oJ8Ug0GrG9RRZ1W/cvoZWs80aw xi7HPPzwUdrHSK7eIjh1hdTBZoYDfcp2yd8ysS/j2ABC53pfXiz3eLzKjGrR9bBBb2sgHszwv O6AefobsXjrQ0JmhxxJW5etNnP2I8qF/Bj+JHD45XJ32Co/fMzNESbVUfSimlsQ9HlBL2Q5JV i0K95qrAldFGncoLwo6Rystkz0n7oZP4Z5LRzhykQW/t1kyWMujiBfJ6sOq5Joris5gGkk0th TJlPuI7n1jnU6RyjL5JO/p5Deco15fKHzGnr4ehGyTpXXy80Ge8LEn3K/X6onprFtLkiZFWP+ GeU9tRJ91XaqZVzSkw9UHEFLOUiJgBmfqHHyPUykQL+FVSMzwxCp1rXJyuZpNnlkJqxcsngl6 mi76muvKgY6LOx1v |
| X-BeenThere | python-de@python.org |
| X-Mailman-Version | 2.1.21 |
| Precedence | list |
| List-Id | Die Deutsche Python Mailingliste <python-de.python.org> |
| List-Unsubscribe | <https://mail.python.org/mailman/options/python-de>, <mailto:python-de-request@python.org?subject=unsubscribe> |
| List-Archive | <http://mail.python.org/pipermail/python-de/> |
| List-Post | <mailto:python-de@python.org> |
| List-Help | <mailto:python-de-request@python.org?subject=help> |
| List-Subscribe | <https://mail.python.org/mailman/listinfo/python-de>, <mailto:python-de-request@python.org?subject=subscribe> |
| X-Mailman-Original-Message-ID | <5708B057.9090405@sschwarzer.net> |
| X-Mailman-Original-References | <57040A52.9020404@thomas-guettler.de> <F355D502-7753-4583-AABF-325BB68D2143@zopyx.com> <5704A110.4030006@behnel.de> <6E439C3C-FC40-4CAA-827C-8ACDE3DC85F2@zopyx.com> <57051734.6020207@thomas-guettler.de> <57051C5F.1080808@chrisarndt.de> <570553C5.80101@sschwarzer.net> <57055E23.40602@inqbus.de> <57058FD3.90400@mail.de> <5705FBB9.4040301@sschwarzer.net> <5706660B.3030905@thomas-guettler.de> |
| Xref | csiph.com de.comp.lang.python:4384 |
Show key headers only | View raw
On 2016-04-07 15:52, Thomas Güttler wrote:
> Link zu python-ideas "Control Flow - Never Executed Loop Body"
>
> https://groups.google.com/d/msg/python-ideas/RPAaSTN0Avw/FUneVrpZIwAJ
Thomas, vielen Dank! :-)
Ich habe mir das mal durchgelesen. Als wichtige Erkenntnisse
bleiben:
- Es ist nicht _allgemein_ möglich, in ein Iterable
"hineinzusehen", um festzustellen, ob es leer ist. Dazu
muss man den Iterator nach dem ersten Wert fragen. Wenn
man das in einer Hilfs-Funktion "versteckt", kann das zu
unangenehmen Überraschungen führen.
- Der Ansatz mit Sentinel,
item = sentinel = object()
for item in iterable:
...
if item is sentinel:
...
wird mitunter als deutlich schwerer verständlich angesehen
als eine Variante mit explizitem Flag:
has_items = False
for item in iterable:
has_items = True
...
if has_items:
...
Mir ist zum Sentinel-Ansatz noch eine Variante eingefallen,
die den Code hoffentlich verständlicher macht. Genauso, wie
man ein Flag nicht `flag` nennt, sondern zum Beispiel
`is_valid` oder `has_items`, kann und sollte man auch einen
spezielleren Namen als `sentinel` verwenden. Mein Vorschlag:
item = unset = object()
for item in iterable:
...
if item is unset:
...
Das ist meines Erachtens schöner "ausführbarer Pseudocode". :-)
Viele Grüße
Stefan
Back to de.comp.lang.python | Previous | Next | Find similar
Re: [Python-de] Link zu python-ideas "Control Flow - Never Executed Loop Body" Stefan Schwarzer <sschwarzer@sschwarzer.net> - 2016-04-09 09:33 +0200
csiph-web