在python 3.2中,有没有办法阻止函数的其余部分执行?
基本上,我正在创建一个登录系统作为课程作业的概念,我无法在任何地方找到答案。
我的代码分为2个文件,一个记录器,用日志文件处理输入和输出,以及主类,如数据库连接,登录代码本身等。
这是处理用户输入的代码,我对第3行和第4行感兴趣,它将'quit'转换为'QUIT0x0',以最大限度地减少意外调用退出代码的可能性。
def getInput(input_string, type):
result = input(input_string)
if result.lower == 'quit':
result = 'QUIT0x0'
#log the input string and result
if type == 1:
with open(logFile, 'a') as log_file:
log_file.write('[Input] %s \n[Result] %s\n' %(input_string, result))
return result
#no logging
elif type == 2:
return result
#undefined type, returns 'Undefined input type' for substring searches, and makes a log entry
else:
result = '[Undefined input type] %s' %(input_string)
output(result, 4)
return result
这是处理从用户数据库中删除用户记录的代码,我对如何使第4行和第5行工作并停止执行其余功能感兴趣:
def deleteUser(self):
self.__user = getInput('Enter the username you want to delete records for: ', 1)
if self.__user == 'QUIT0x0':
#Quit code goes here
else:
self.__userList = []
self.__curs.execute('SELECT id FROM users WHERE username="%s"' %(self.__user))
提前致谢, 汤姆
答案 0 :(得分:6)
“退出函数”被称为return
:
def deleteUser(self):
self.__user = getInput('Enter the username you want to delete records for: ', 1)
if self.__user == 'QUIT0x0':
return
else:
# ...
但是,由于您已经使用if/else
,因此无论如何都不应执行else
分支,因此返回是不必要的。您也可以在其中添加pass
:
def deleteUser(self):
self.__user = getInput('Enter the username you want to delete records for: ', 1)
if self.__user == 'QUIT0x0':
pass
else:
# ...
甚至使用以下内容:
def deleteUser(self):
self.__user = getInput('Enter the username you want to delete records for: ', 1)
if self.__user != 'QUIT0x0':
# ...
甚至使用早期回报:
def deleteUser(self):
self.__user = getInput('Enter the username you want to delete records for: ', 1)
if self.__user == 'QUIT0x0':
return
# ...