[英]Calling a function using variables from other functions as parameters/arguments
我正在尝试调用我创建的一组子例程,这些子例程使用其他子例程的参数。 例如,变量“用户名”应该能够传递到“ 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_earcher()
你catch
所有的变量return
由Ed signer()
到一个list
/多个变量。 然后,您可以使用列表索引或分配给捕获用户名的变量来传递用户名。
二:您可以使用global
变量,并且signer()
函数可以简单地覆盖用户名,以便您可以轻松传递用户名。
编辑(回应评论):
要catch
变量,可以执行a, b, c = signer()
,其中a
包含username
的值。
关于list方法,我的意思是您需要return
一个列表而不是三个变量,然后您可以使用your_caught_list[0]
直接引用username
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.