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