2016-06-12 3 views
-2

呼び出すことはできません。Pythonの「リスト」オブジェクトは、私は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(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 

それは私にエラーを与える:

for m in range (0,number_columns):
TypeError: 'list' object is not callable

変数が整数なので、このエラーが発生する理由はわかりません。私はリストを呼び出していません。

+0

'range'組み込み関数を引数に' range'を使ってリストに置き換えました。 –

+0

実際には、この関数を他の範囲で呼び出しています。範囲(0,5)内にある: 行= sql_queries.query_execute(sql_queries.query_test、[i])[0]() –

+1

だから?あなたが渡すリストに名前をつける必要はありません( '[i]') 'range'を使ってください。 –

答えて

1

あなたの関数に引数行うことでローカル名としてrangeを使用:

def query_execute (self,query, range): 
#        ^^^^^ 

をあなたはその後、同様にグローバルな組み込みの名前を使用することはできません。引数の名前を他のものに変更します。

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 
関連する問題