2015-02-09 41 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移出函数定义或将它们移到全局范围外(函数外部)。