Path: csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail From: "Sven R. Kunze" Newsgroups: de.comp.lang.python Subject: Re: [Python-de] =?utf-8?q?Fwd=3A_Re=3A_Syntax-Erweiterung_f=C3=BCr_S?= =?utf-8?q?chleifen_in_Python3?= Date: Mon, 11 Apr 2016 22:25:47 +0200 Lines: 62 Message-ID: References: <570AAE64.1030109@procoders.net> <570C084B.5050301@mail.de> Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 8bit X-Trace: news.uni-berlin.de xoX98eR7IsMHFFBACYeB4ADYf8k7AxOWhPhzsq+AdmWg== Return-Path: X-Original-To: python-de@python.org Delivered-To: python-de@mail.python.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=mail.de; s=mail201212; t=1460406348; bh=2YdJX9B71KML3SCaBk8zAByOgBBCd35QPfqE+EJaPQg=; h=Subject:To:References:From:Date:In-Reply-To:From; b=AgrfDdTSsCXFDHDaduLJU6uZPtQh3D+fG9LABcdMxgj11IWkuHMMN8ULxmqCmSoMY RnpLXfnr/nr+Tf1B6x2h6NQt9OeSnjFh2kqhLKBf9JMSV6c1p/GWSGz1c+me6Ovtfc JUkToTZL/QiBR50KfLXM8FSir2fR4SG2iMCr4mAM= In-Reply-To: <570AAE64.1030109@procoders.net> X-purgate: clean X-purgate: This mail is considered clean (visit http://www.eleven.de for further information) X-purgate-type: clean X-purgate-Ad: Categorized by eleven eXpurgate (R) http://www.eleven.de X-purgate: This mail is considered clean (visit http://www.eleven.de for further information) X-purgate: clean X-purgate-size: 6092 X-purgate-ID: 154282::1460406348-00000859-4930712E/0/0 X-Content-Filtered-By: Mailman/MimeDel 2.1.21 X-BeenThere: python-de@python.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Die Deutsche Python Mailingliste List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Mailman-Original-Message-ID: <570C084B.5050301@mail.de> X-Mailman-Original-References: <570AAE64.1030109@procoders.net> Xref: csiph.com de.comp.lang.python:4397 On 10.04.2016 21:49, Achim Domma wrote: > Ich würde gerne mal einen realen Anwendungsfall sehen. Zumindest ist > das die Frage, die ich einem Kollegen stellen würde, der mit dem > Problem auf mich zu kommt. Für mich "riecht" die Frage nach einem > verstecken Workaround für ein anderes Problem. Ich hatte das auf der englischen Liste hatte ich das reale Problem des Kollegen so beschrieben: - lasse dir von System A ein Objekt nach dem anderen geben und erzeuge in System B eine Bestätigung für die Bearbeitung dafür - falls System A dir gar kein Objekt liefert, erzeuge in System B eine Art "gab nix"-Bestätigung Ein reales Problem, beauftragt und bezahlt durch einen unserer Kunden (SAP-System, Workflowsystem, etc.). > Meiner Ansicht nach unterwandert die Fragestellung etwas das abstrakte > Konzept eines Iterators. Eine Iterator liefert "on demand" Werte und > eine For-Schleife verarbeitet sie "stupide" einen nach dem anderen. Die > "Buchhaltung" ob der Iterator je ein Ergebnis geliefert hat, > interessiert normal nicht, wird her aber gewünscht. Das ist die eine Interpretation. Man kann es auch als Kontrollflusssteuerung bezeichnen, so, wie das auch "for-else" macht. > Meiner Ansicht nach ist die For-Schleife der falsche Platz. Warum? Weil man es im Iterator lösen KANN, heißt nicht, dass die Schleife der falsche/richtige Platz ist. > Ich würde das im Iterator lösen und hab' mal ganz auf die Schnelle > folgendes zusammengehackt: > [schnippeldischnipp] Interessante Idee. Auf der englischen Liste hatte jemand folgendes (quasi eine Syntax für deinen Wrapper) vorgeschlagen: for item in collection as iterator: # do if iterator.empty: # make Zugegebenermaßen würde diese Art der Lösung eine gewisse Flexibilisierung erlauben; bspw. das Trennen von for-Schleife und if-empty. Allerdings kann man das auch als Schwäche der Lösung interpretieren, wenn die Trennung nicht wirklich sinnvoll sein kann. Dies ist der Fall, wenn die Prüfung, ob der Iterator leer war, erst am Sankt-Nimmerleins-Tag stattfindet und somit der konkrete Bezug verloren geht. Für das, was ich bisher gesehen habe, wäre eine Trennung NICHT notwendig gewesen, aber man weiß ja nie. Von daher hätte ich auch nichts dagegen. vG Sven