Message 236103 - Python tracker (original) (raw)

It is possible to reproduce original bug without hacking the code object or bytecode:

eval('lambda %s, *args, **kwargs: (lambda:args)' % (', '.join('a%d'%i for i in range(253)),))(*range(256))() (253, 254, 255) eval('lambda %s, *args, **kwargs: (lambda:args)' % (', '.join('a%d'%i for i in range(254)),))(*range(256))() (254, 255) eval('lambda %s, *args, **kwargs: (lambda:args)' % (', '.join('a%d'%i for i in range(255)),))(*range(256))() Traceback (most recent call last): File "", line 1, in File "", line 1, in NameError: free variable 'args' referenced before assignment in enclosing scope

eval('lambda %s, *args, **kwargs: (lambda:kwargs)' % (', '.join('a%d'%i for i in range(253)),))(*range(256))() {} eval('lambda %s, *args, **kwargs: (lambda:kwargs)' % (', '.join('a%d'%i for i in range(254)),))(*range(256))() Traceback (most recent call last): File "", line 1, in File "", line 1, in NameError: free variable 'kwargs' referenced before assignment in enclosing scope eval('lambda %s, *args, **kwargs: (lambda:kwargs)' % (', '.join('a%d'%i for i in range(255)),))(*range(256))() 0