Has apparent 2.4b1 bug been fixed? flatten in Lib\compiler\ast.py overloads 'list' name

B

Bengt Richter

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
 
B

Bengt Richter

What am I missing? (this is from 2.4b1, so probably it has been fixed?)
I googled and found a bug report, but initial report kind of passes on it
saying nested sequences will probably be tuples, so no panic (my paraphrased description).
So I guess it's in the mill. So never mind. I should have googled first ;-/
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
 
L

Larry Bates

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
 
S

Steve Holden

Larry said:
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.
I believe Bengt was merely seeking confirmation that this was indeed a
bug in a distributed library (which he then provided himself by finding
a bug report). Hence his use of the phrase "overloads 'list' name" in
the subject line!

regards
Steve
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,054
Latest member
TrimKetoBoost

Latest Threads

Top