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


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

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

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 2025-03-20 19:15 +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>

Show all headers | 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