2015-02-09 27 views
-1
def readswitch(x,y,connn,read): 
    x='create vlan' 
    y='global' 
    conn = sqlite3.connect('server.db') 
    if conn: 
     cur = conn.cursor() 
     run= cur.execute("SELECT command FROM switch WHERE function =? or type = ? ORDER BY key ASC",(x,y)) 
     read = cur.fetchall() 
     return run; 

import database 
print (database.readswitch(x,y)) 

我試圖訪問數據庫,並在其中 我做一個模塊調用數據庫無法打印像蟒蛇函數的參數不能使用和一個打印錯誤

Traceback (most recent call last): 
    File "C:/Users/tommy/PycharmProjects/2015122/database.py", line 400, in <module> 
    import database 
    File "C:\Users\tommy\PycharmProjects\2015122\database.py", line 401, in <module> 
    print (database.readswitch(x,y)) 
NameError: name 'x' is not defined 

和我的函數返回的命令參數不能像

def readswitch(x,y,connn,read): 

PEP 8: missing whitespace after ',' Parameter 'y' value is not used 

如何解決這個錯誤? 我不擅長python,在這幾個小時裏我需要幫助。謝謝!

+0

'print(database.readswitch(x,y))'這裏x和y是什麼?他們沒有在您的示例代碼中聲明。 – Marcin 2015-02-09 02:17:41

+0

在將它們傳遞到'print(database.readswitch(x,y))'之前,您還沒有定義任何'x,y',所以它會導致錯誤 – dragon2fly 2015-02-09 02:19:20

+0

,所以我現在應該怎麼做?如何定義它?是否意味着x ='創建vlan' y ='全局'是什麼都沒有定義? – 2015-02-09 02:31:24

回答

1

您可以用參數x,y定義一個函數,然後在函數中重新賦值它們。這是沒有意義的,因爲它們不是全局變量也不可變的。

我建議你將x,y移出函數定義或將它們移到全局範圍外(函數外部)。