在函数结束(例如检查失败)之前,退出python中的函数(没有返回值)的最佳方法是什么



让我们假设一个迭代,在这个迭代中,我们调用一个没有返回值的函数。我认为我的程序应该如何运行的解释如下伪代码:

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...

如果我在python中实现这一点,函数会返回一个None,这让我很困扰。如果函数体中的检查失败,是否有更好的方法来"退出没有返回值的函数"?

您可以简单地使用

return

其作用与完全相同

return None

如果执行到达函数体的末尾而没有命中return语句,那么函数也将返回None。不返回任何内容与在Python中返回None相同。

我建议:

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

您可以使用不带任何参数的return语句来退出函数

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

或者如果您想被告知问题,则提出异常

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...
  1. return Nonereturn可以用于退出函数或程序,两者都做相同的事情
  2. 可以使用quit()函数,尽管在制作真实世界的应用程序时不鼓励使用该函数,并且只能在解释器中使用
    import site
    
    def func():
        print("Hi")
        quit()
        print("Bye")
  1. 可以使用exit()函数,类似于quit(),但不鼓励在实际应用中使用
import site
    
    def func():
        print("Hi")
        exit()
        print("Bye")
  1. sys.exit([arg])函数可以使用,并且需要import sys模块。因此,与其他两个函数不同,该函数可以用于现实世界中的应用
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)函数可以用于退出进程,并且需要使用import os模块

最新更新