Wat is de beste manier om een functie (die geen retourwaarde heeft) in python af te sluiten voordat de functie eindigt (bijv. een controle mislukt)?

Laten we een iteratie aannemen waarin we een functie aanroepen zonder een retourwaarde. De manier waarop ik denk dat mijn programma zich zou moeten gedragen, wordt uitgelegd in deze pseudocode:

for element in some_list:
    foo(element)
def foo(element):
    do something
    if check is true:
        do more (because check was succesful)
    else:
        return None
    do much much more...

Als ik dit in python implementeer, stoort het me dat de functie een Noneretourneert. Is er een betere manier om “een functie te verlaten die geen retourwaarde heeft, als een controle mislukt in de hoofdtekst van de functie”?


Antwoord 1, autoriteit 100%

Je zou gewoon

. kunnen gebruiken

return

die precies hetzelfde doet als

return None

Uw functie retourneert ook Noneals de uitvoering het einde van de hoofdtekst van de functie bereikt zonder een return-instructie te raken. Niets retourneren is hetzelfde als Noneretourneren in Python.


Antwoord 2, autoriteit 5%

Ik stel voor:

def foo(element):
    do something
    if not check: return
    do more (because check was succesful)
    do much much more...

Antwoord 3, autoriteit 5%

u kunt het returnstatement gebruiken zonder enige parameter om een functie af te sluiten

def foo(element):
    do something
    if check is true:
        do more (because check was succesful)
    else:
        return
    do much much more...

of maak een uitzondering als u op de hoogte wilt worden gehouden van het probleem

def foo(element):
    do something
    if check is true:
        do more (because check was succesful)
    else:
        raise Exception("cause of the problem")
    do much much more...

Antwoord 4

  1. return Noneof returnkunnen worden gebruikt om een functie of programma te verlaten, beide doen hetzelfde
  2. De functie

  3. quit()kan worden gebruikt, hoewel het gebruik van deze functie wordt afgeraden voor het maken van toepassingen in de echte wereld en alleen in de tolk mag worden gebruikt.
   import site
    def func():
        print("Hi")
        quit()
        print("Bye")
    De functie

  1. exit()kan worden gebruikt, vergelijkbaar met quit(), maar het gebruik ervan wordt afgeraden voor het maken van toepassingen in de echte wereld.
import site
    def func():
        print("Hi")
        exit()
        print("Bye")
    De functie

  1. sys.exit([arg])kan worden gebruikt en moet daarvoor de module import sysimporteren, deze functie kan in tegenstelling tot de andere worden gebruikt voor toepassingen in de echte wereld twee functies.
import sys 
  height = 150
if height < 165: # in cm 
    # exits the program 
    sys.exit("Height less than 165")     
else: 
    print("You ride the rollercoaster.") 
  1. os._exit(n)-functie kan worden gebruikt om een proces te verlaten, en behoefte aan import osMODULE VOORDAT.

Other episodes