为什么我收到一个错误,指出 k 未定义,即使我已经返回它?
Why am I getting an error stated that k is not defined, even though i have returned it?
为什么我收到错误提示 k 未定义,即使我已返回它?
import pyautogui
def askpass():
password = pyautogui.password(text='Enter password for the database:', title='', default='', mask='*')
if password=='root':
print('password correct')
else:
askpass()
k=password
return k
askpass()
print(k)
编辑:
我在阅读代码时错过了递归 askpass()
,如果您输入了错误的密码,您将进入同一函数的另一个调用,但该调用的 return 不会分配给密码。现在我不建议在这里使用递归,因为你只是继续添加函数调用,但我建议用这样的 while 循环来做到这一点:
def askpass():
password = ""
while password != "root":
password = pyautogui.password(text='Enter password for the database:', title='', default='', mask='*')
k=password
return k
旧:
正确的语法是
import pyautogui
def askpass():
password = pyautogui.password(text='Enter password for the database:', title='', default='', mask='*')
if password=='root':
print('password correct')
else:
password=askpass()
k=password
return k
k = askpass()
print(k)
或
print(askpass())
当你return一个变量时,它return就是你可以像上面写的那样得到的值。
(这就是您的想象方式,但在 python 中实际发生的是函数 return 对对象的引用,然后可以将其分配给变量)
为什么我收到错误提示 k 未定义,即使我已返回它?
import pyautogui
def askpass():
password = pyautogui.password(text='Enter password for the database:', title='', default='', mask='*')
if password=='root':
print('password correct')
else:
askpass()
k=password
return k
askpass()
print(k)
编辑:
我在阅读代码时错过了递归 askpass()
,如果您输入了错误的密码,您将进入同一函数的另一个调用,但该调用的 return 不会分配给密码。现在我不建议在这里使用递归,因为你只是继续添加函数调用,但我建议用这样的 while 循环来做到这一点:
def askpass():
password = ""
while password != "root":
password = pyautogui.password(text='Enter password for the database:', title='', default='', mask='*')
k=password
return k
旧:
正确的语法是
import pyautogui
def askpass():
password = pyautogui.password(text='Enter password for the database:', title='', default='', mask='*')
if password=='root':
print('password correct')
else:
password=askpass()
k=password
return k
k = askpass()
print(k)
或
print(askpass())
当你return一个变量时,它return就是你可以像上面写的那样得到的值。
(这就是您的想象方式,但在 python 中实际发生的是函数 return 对对象的引用,然后可以将其分配给变量)