Has apparent 2.4b1 bug been fixed? flatten in Lib\compiler\ast.py overloads 'list' name
Larry Bates
lbates at syscononline.com
Wed Jan 19 12:09:42 EST 2005
You have name clashing between Python's built in list function
and the variable called list that you pass into the function.
Change the passed in variable name to something else.
Larry Bates
Try something like (not tested):
def flatten(seq):
l = []
for elt in seq:
if isinstance(elt, (list, tuple):
for elt2 in flatten(elt):
l.append(elt2)
else:
l.append(elt)
return l
Bengt Richter wrote:
> What am I missing? (this is from 2.4b1, so probably it has been fixed?)
>
>
> def flatten(list):
> l = []
> for elt in list:
> ^^^^--must be expecting list instance or other sequence
> t = type(elt)
> if t is tuple or t is list:
> ^^^^--looks like it expects to refer to the type, not the arg
> for elt2 in flatten(elt):
> l.append(elt2)
> else:
> l.append(elt)
> return l
>
>
> Regards,
> Bengt Richter
More information about the Python-list
mailing list