Message306197
The compiler currently allows parentheses to be omitted if a generator expression is the sole entry in a base class list:
>>> class C(x for x in []): pass
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: cannot create 'generator' instances
The language reference states that the parentheses around a generator expression are only optional for "calls with only one argument": https://docs.python.org/3/reference/expressions.html#generator-expressions
A base class list is not a call, so this should be treated as a syntax error, rather than being handled as equivalent to `class C((x for x in [])): pass` |
|
Date |
User |
Action |
Args |
2017-11-14 10:25:04 | ncoghlan | set | recipients:
+ ncoghlan, serhiy.storchaka |
2017-11-14 10:25:04 | ncoghlan | set | messageid: <1510655104.02.0.213398074469.issue32023@psf.upfronthosting.co.za> |
2017-11-14 10:25:03 | ncoghlan | link | issue32023 messages |
2017-11-14 10:25:03 | ncoghlan | create | |
|