Python:';列表';对象不可调用
我有一个函数,试图在一系列长度列表上循环,以获得ASCII字母:Python:';列表';对象不可调用,python,list,loops,for-loop,Python,List,Loops,For Loop,我有一个函数,试图在一系列长度列表上循环,以获得ASCII字母: def query_execute (self,query, range): list_titles = [] list_colunmns_letters = [] cursor.execute(query, range) description = cursor.description row = cursor.fetchall() number_columns = len(de
def query_execute (self,query, range):
list_titles = []
list_colunmns_letters = []
cursor.execute(query, range)
description = cursor.description
row = cursor.fetchall()
number_columns = len(description)
for word in description:
list_titles.append(word[0])
for m in range (0,number_columns):
list_colunmns_letters.append(string.ascii_uppercase[m])
return row,list_titles,list_colunmns_letters
这给了我一个错误:
对于范围内的m(0,数字列):TypeError:“列表”对象不可调用
由于
number\u columns
变量是一个整数,我不明白为什么会发生此错误,我没有调用列表。您将range
作为函数的参数,将其用作本地名称:
def query_execute (self,query, range):
# ^^^^^
然后也不能使用全局内置名称。将参数重命名为其他参数;我使用了params
:
def query_execute (self, query, params):
list_titles = []
list_colunmns_letters = []
cursor.execute(query, range)
description = cursor.description
row = cursor.fetchall()
number_columns = len(description)
for word in description:
list_titles.append(word[0])
for m in range(0, number_columns):
list_colunmns_letters.append(string.ascii_uppercase[m])
return row, list_titles, list_colunmns_letters
您使用
range
作为函数的参数,将内置的range
替换为一个列表。实际上,我正在用另一个范围调用此函数:for I in range(0,5):row=sql\u querys.query\u execute(sql\u querys.query\u test,[I])[0]()那么?您不需要命名传入的列表(使用[i]
)范围。