Seiteneffekte des neuen PEG-Parsers

Code-Stücke können hier veröffentlicht werden.
Antworten
Benutzeravatar
DeaD_EyE
User
Beiträge: 1017
Registriert: Sonntag 19. September 2010, 13:45
Wohnort: Hagen
Kontaktdaten:

Durch die Einführung des neuen PEG-Parsers sind verschiedene Konstruktionen möglich, die zuvor einen SyntaxError ausgelöst haben.

Code: Alles auswählen

a = [1,2,3]
b = [4,5,6]

for x in *a, *b:
    print(x)
    
Dazu gibt es auch ein bpo: https://bugs.python.org/issue46725
Wer wusste bereits, dass man das machen kann?
Mir war es völlig neu, dass sowas geht.
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

Naja, dass man früher Klammern gebraucht hat, erzwingt einem hier nur mehr Lesbarkeit.

Code: Alles auswählen

a = [1,2,3]
b = [4,5,6]

for x in (*a, *b):
    print(x)
__deets__
User
Beiträge: 14529
Registriert: Mittwoch 14. Oktober 2015, 14:29

Diese Syntax kannte ich noch nicht. Aber ich werde sie denke ich auch eher nicht verwenden, das waere eher ein Fall fuer itertools chain. Einfach weil mir das zu arkan ist.
narpfel
User
Beiträge: 645
Registriert: Freitag 20. Oktober 2017, 16:10

Die IMHO einzige positive Änderung, die bis jetzt durch den PEG-Parser möglich wurde:

Code: Alles auswählen

with (
    open("foo") as foo,
    open("bar") as bar,
):
    ...
nezzcarth
User
Beiträge: 1633
Registriert: Samstag 16. April 2011, 12:47

narpfel hat geschrieben: Montag 11. April 2022, 18:21 Die IMHO einzige positive Änderung, die bis jetzt durch den PEG-Parser möglich wurde:
Ich kann man mich täusche, aber ich habe die schöneren Fehlermeldungen, die es seit ein paar Versionen gibt, auch mit dem neuen Parser in Verbindung gebracht.
Antworten