[Python-ideas] New 3.x restriction on number of keyword arguments

Georg Brandl g.brandl at gmx.net
Thu Oct 21 17:07:42 CEST 2010

Am 21.10.2010 16:06, schrieb Benjamin Peterson:
> Raymond Hettinger <raymond.hettinger at ...> writes:
>> One of the use cases for named tuples is to have them be automatically created
> from a SQL query or CSV header. 
>> Sometimes (but not often), those can have a huge number of columns.  In Python
> 2.x, it worked just fine -- we
>> had a test for a named tuple with 5000 fields.  In Python 3.x, there is a
> SyntaxError when there are more than
>> 255 fields.
> I'm not sure why you think this is new. It's been true from at least 2.5 as far
> as I can see.

You must be talking of a different restriction.  This snippet works fine in
2.7, but raises a SyntaxError in 3.1:

   exec("def f(" + ", ".join("a%d" % i for i in range(1000)) + "): pass")


Thus spake the Lord: Thou shalt indent with four spaces. No more, no less.
Four shall be the number of spaces thou shalt indent, and the number of thy
indenting shall be four. Eight shalt thou not indent, nor either indent thou
two, excepting that thou then proceed to four. Tabs are right out.

More information about the Python-ideas mailing list