【发布时间】:2018-08-15 20:34:36
【问题描述】:
我正在尝试调用我创建的一组子例程,这些子例程使用来自其他子例程的参数。例如,变量“用户名”应该能够传递到“db_username_searcher”。
def signer():
def login():
username = entry_user.get()
password = entry_user.get()
if username in admin_array:
admin_pass = 'pass'
return username, password, admin_pass
win = tkinter.Tk()
win.title('Sign In')
win.geometry('800x800')
lbl_user = tkinter.Label(win, text='Username ')
entry_user = tkinter.Entry(win)
lbl_pwd = tkinter.Label(win, text='Password ')
entry_pwd = tkinter.Entry(win, show='x')
lbl_output = tkinter.Label(win)
btn_signin = tkinter.Button(win, text='Sign in', command=login)
lbl_user.pack()
entry_user.pack()
lbl_pwd.pack()
entry_pwd.pack()
lbl_output.pack()
btn_signin.pack()
entry_user.focus_set()
win.mainloop()
这是分配和返回“用户名”的代码:
def db_username_sercher(username, password):
conn = sqlite3.connect('passwordDbase.db')
c = conn.cursor()
c.execute("SELECT * FROM passwordDb WHERE employee_username=?", (username, ))
r = c.fetchone()
if r:
message = 'correct'
else:
message = ' '
if message == 'correct':
dbpassword = c.execute("SELECT employee_password FROM passwordDb WHERE employee_username=?", (username, ))
if dbpassword == password:
message = 'correct'
else:
message = ' '
conn.commit()
c.close()
conn.close()
return message
当我尝试调用这两个函数时,我不知道如何处理参数:
signer()
db_username_searcher(username, password)
"unresolved reference 'password' "
我该如何正确称呼它?,在此先感谢。
【问题讨论】:
-
您的代码格式不正确。请在定义
db_username_searcher后插入必要的缩进 -
抱歉,您的代码格式错误。我跟不上潮流。但是您是否打算将用户名和密码定义为全局变量?如果是这样,您应该在函数
login()中将它们声明为全局,并在其中覆盖它们
标签: python function variables parameters arguments