gett error message: "TypeError: 'int' object is not callable"
Dave Angel
davea at ieee.org
Thu Jul 9 10:52:14 EDT 2009
Nick wrote:
> I've seen a lot of posts on this problem, but none seems to help.
> Here is the code:
> /code
>
> file = open(prefix1)
> text = file.readlines()
> len = len(text)
> fields = text[1].split()
> num_rows = int(fields[1])
> num_cols = int(fields[2])
>
> U1_matrix = []
>
> print fields
> print repr(fields)
> print len(fields)
>
> for line in text[2: num_rows+2]:
> fields = line.split()
> # print "fields", fields, line
> for i in range(len(fields)):
> fields[i] = float(fields[i])
> U1_matrix.append(fields)
>
> /*code
>
> prefix is a space/line delimited ascii file that represents a 2D
> matrix. i'm trying to read in 2 matrices from different files, strip
> away the header stuff and then take the dot product of the 2
> matrices. any help is much appreciated.
>
> thanks,
> nick
>
>
You have at least two problems with that code, one of which is causing
your symptom.
Both 'file' and 'len' are defined in the standard library, and shouldn't
be redefined in your code. And your problem is that after you redefined
'len', you then tried to use it in its original meaning.
Rename those two and you'll get further.
And it would have saved lots of time for lots of people if you included
sample data and the actual error message, marking where in your code it
occurs. Once you know it's complaining about the len() call, it's not
too hard to figure out that the problem was you rebound the len
attribute from a function to an integer.
Traceback (most recent call last):
File "M:\Programming\Python\sources\dummy\echo2.py", line 21, in <module>
print len(fields)
TypeError: 'int' object is not callable
DaveA
More information about the Python-list
mailing list