Groups | Search | Server Info | Keyboard shortcuts | Login | Register


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

Re: [Python-de] Verstaendnis-Frage zu yield und Liste dahinter

Path csiph.com!weretis.net!feeder8.news.weretis.net!newsfeed.xs3.de!tahina.priv.at!news.luga.at!.POSTED.212.17.106.130!not-for-mail
From "Peter J. Holzer" <hjp-usenet4@hjp.at>
Newsgroups de.comp.lang.python
Subject Re: [Python-de] Verstaendnis-Frage zu yield und Liste dahinter
Date Thu, 20 Mar 2025 19:15:34 +0100
Organization LUGA
Message-ID <slrnvtomq6.jo0i.hjp-usenet4@trintignant.hjp.at> (permalink)
References <vrf3bc$4mvg$1@solani.org> <87v7s4eocl.fsf@vagabond.tim-landscheidt.de> <vrhjhs$5o94$1@solani.org>
MIME-Version 1.0
Content-Type text/plain; charset=utf-8
Content-Transfer-Encoding 8bit
Injection-Info vinge.luga.at; posting-host="212.17.106.130"; logging-data="212107"; mail-complaints-to="usenet@vinge.luga.at"
User-Agent slrn/1.0.3 (Linux)
Cancel-Lock sha1:fHSQhas7teT68f2IVEfBQIHGUro=
Xref csiph.com de.comp.lang.python:6260

Show key headers only | View raw


On 2025-03-20 17:33, Christian Winther <cwsolani2020@nurfuerspam.de> wrote:
> Am 19.03.2025 um 21:51 schrieb Tim Landscheidt:
> [...]
>>> Frage:
>> 
>>> Was gibt
>>>         yield name, {}
>> 
>>> zurück?
>> 
>>> Speziell: Was macht/beinhaltet der Ausdruck: {}
>> 
>> „{}“ ist ein leeres „dictionary“
>> (https://docs.python.org/3/tutorial/datastructures.html#dictionaries).
>> Die yield-Anweisung gibt jeweils ein Tupel mit zwei Werten
>> zurück, von denen der erste der Wert von name ist und der
>> zweite ein leeres dictionary. Einfacheres Beispiel:
>
> danke für Deine Erklärung.
>
> So richtig bringt mich das auch nicht weiter.

Bezieht sich Dein Verständnisproblem vielleicht eher darauf, was »yield«
macht? Das scheint mir jedenfalls konzeptionell schwieriger zu sein als
ein leeres Dictionary.

»yield« dient der Implementation von Generatoren bzw. Coroutinen. Es
unterbricht die Ausführung und liefert die Werte an den Aufrufer zurück,
aber im Gegensatz zu »return« ist die Funktion damit noch nicht beendet,
sondern setzt an der Stelle fort, wenn man den nächsten Wert anfprdert.

Hier ist z.B. ein (ziemlich sinnloses) Programm, an dem man das sieht:

#!/usr/bin/python3
def g():
    print("g1")
    yield 1
    print("g2")
    yield 2
    print("g3")
    yield 3
    print("g4")
    yield 4

for i in g():
    print("<<")
    print(i)
    print(">>")

gg = g()
print("=1")
print(next(gg))
print("=2")
print(next(gg))
print("=3")

        hjp

Back to de.comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

[Python-de] Verstaendnis-Frage zu yield und Liste dahinter Christian Winther <cwsolani2020@nurfuerspam.de> - 2025-03-19 19:45 +0100
  Re: [Python-de] Verstaendnis-Frage zu yield und Liste dahinter Tim Landscheidt <tim@tim-landscheidt.de> - 2025-03-19 20:51 +0000
    Re: [Python-de] Verstaendnis-Frage zu yield und Liste dahinter Christian Winther <cwsolani2020@nurfuerspam.de> - 2025-03-20 18:33 +0100
      Re: [Python-de] Verstaendnis-Frage zu yield und Liste dahinter "Peter J. Holzer" <hjp-usenet4@hjp.at> - 2025-03-20 19:15 +0100
        Re: [Python-de] Verstaendnis-Frage zu yield und Liste dahinter Christian Winther <cwsolani2020@nurfuerspam.de> - 2025-03-20 19:34 +0100
      Re: [Python-de] Verstaendnis-Frage zu yield und Liste dahinter Hermann Riemann <nospam.ng@hermann-riemann.de> - 2025-03-20 19:38 +0100
        [Python-de] Re: Verstaendnis-Frage zu yield und Liste dahinter Hartmut Goebel <h.goebel@goebel-consult.de> - 2025-03-21 16:23 +0100

csiph-web