In Python, come si smette di eseguire il codice in una funzione?
-
11-12-2019 - |
Domanda
In Python 3.2, c'è un modo per fermare il resto di un'esecuzione della funzione?
Fondamentalmente, sto creando un sistema di accesso come un concetto per i miei corsi, e non sono stato in grado di trovare la risposta a questo ovunque.
Il mio codice è suddiviso in 2 file, un logger, che gestisce l'ingresso e l'output con un logfile e le classi principali, come la connessione del database, il codice di accesso stesso, ecc.
Ecco il codice che gestisce l'input dell'utente, sono interessato alle 3 ° e alla 4a righe, che converte 'smettere' su 'quit0x0', per ridurre al minimo le possibilità del codice di chiuso chiamato per caso. Questo è il codice che gestisce l'eliminazione di un record utente dal database utente, sono interessato a come avrei fatto il 4 ° e 5 ° lavoro e interrompere il resto della funzione dall'esecuzione:
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))
.
Grazie in anticipo, Tom
Soluzione
"Chiudi la funzione" è chiamata return
:
def deleteUser(self):
self.__user = getInput('Enter the username you want to delete records for: ', 1)
if self.__user == 'QUIT0x0':
return
else:
# ...
.
Ma come già si utilizza if/else
, il ramo else
non deve comunque essere eseguito comunque, quindi il ritorno non è necessario.Potresti anche mettere un pass
lì dentro:
def deleteUser(self):
self.__user = getInput('Enter the username you want to delete records for: ', 1)
if self.__user == 'QUIT0x0':
pass
else:
# ...
.
o anche usare quanto segue:
def deleteUser(self):
self.__user = getInput('Enter the username you want to delete records for: ', 1)
if self.__user != 'QUIT0x0':
# ...
.
o anche usare un ritorno anticipato:
def deleteUser(self):
self.__user = getInput('Enter the username you want to delete records for: ', 1)
if self.__user == 'QUIT0x0':
return
# ...
.