Seite 1 von 1
Re: Zeichenketten zählen und ausgeben
Verfasst: Dienstag 9. Juni 2015, 20:34
von bwbg
Die Klammern beim Generatorausdruck dürfen nur weggelassen werden, wenn dieser das einzige Argument der Funktion ist. Ansonsten ist wieder Klammern angesagt. Ich vermute mal, dass es was mit dem parsing zu tun hat. Hinterfragt hatte ich das nie.
Re: Zeichenketten zählen und ausgeben
Verfasst: Mittwoch 10. Juni 2015, 02:20
von DasIch
Klammern weglassen ist bei generator expressions genauso wenig Zucker wie bei Tupeln. Die sind halt grundsätzlich nicht notwendig aber je nach Kontext halt schon weil damit andere (und halt auch der Parser) noch verstehen was du meinst.
Re: Zeichenketten zählen und ausgeben
Verfasst: Donnerstag 11. Juni 2015, 01:34
von bords0
DasIch hat geschrieben:Klammern weglassen ist bei generator expressions genauso wenig Zucker wie bei Tupeln. Die sind halt grundsätzlich nicht notwendig aber je nach Kontext halt schon weil damit andere (und halt auch der Parser) noch verstehen was du meinst.
Das ist schlicht falsch. Es ist genau umgekehrt.
Im Gegensatz zu Tupeln, die als Funktionsargumente zusätzliche Klammern benötigen, kann man dort bei generator expressions die sonst stets nötigen Klammern weglassen.
https://docs.python.org/3/reference/exp ... xpressions
Re: Zeichenketten zählen und ausgeben
Verfasst: Donnerstag 11. Juni 2015, 10:21
von pillmuncher
bords0 hat geschrieben:Im Gegensatz zu Tupeln, die als Funktionsargumente zusätzliche Klammern benötigen, kann man dort bei generator expressions die sonst stets nötigen Klammern weglassen.
Hm... Dann scheint mein Python kaputt zu sein...
Code: Alles auswählen
>>> def foo(a, b):
... pass
...
>>> foo('test', x for x in range(3))
File "<stdin>", line 1
SyntaxError: Generator expression must be parenthesized if not sole argument
Re: Zeichenketten zählen und ausgeben
Verfasst: Donnerstag 11. Juni 2015, 10:28
von /me