返回调用此函数的函数

| 好的,所以,我正在编写一个带有显示错误消息的函数的Python(v2.7)代码。但是还有一些其他功能依赖于此原始错误检查功能。 现在,当调用此错误检查函数时,如果有错误,我希望显示一个错误,然后调用调用此错误函数的函数。 例如,如果
function1()
调用了
error()
并且没有错误,则
error()
函数将无济于事。现在,
function1()
function2()
。当
function2()
调用
error()
函数时,它将检测到错误,显示错误消息,然后再次调用
function2()
。这是我想要做的,但是我不知道如何再次返回调用函数。     
已邀请:
        隐式地回忆起调用函数必然会导致无限循环,错误(除非您绝对确保所有调用错误的方法都是幂等的,即使在过早中止的情况下也是如此),混乱以及无论如何都是完全不合逻辑的。您正在寻找的只是常规错误处理:
def f2():
   try:
       1/0 # complicated code, potentially raising an error
   except ZeroDivisionError: # Or BaseException, if you gotta catch them all
       error()
       # clean up, restore a consistent state
   # go on, no matter whether the error occurred or did not
如果只是重试有帮助,您只需将其写出即可:
 def sometimes_fails():
     1 / random.randint(0,1)

 def f():
    while True:
        try:
            sometimes_fails()
         except ZeroDivisionError:
            continue # try again
         break # abort
对于非常不寻常,极其复杂(幂等)的行为使用通用名称(如“ 10”),因此易出错的行为不是一个好主意。 answer11ѭ带给您这个答案。     
        phinag正确地提到这是一个坏主意。但是,如果仍然需要,ѭ12模块可以提供帮助:
import inspect

def foo():
    print globals().get(inspect.stack()[1][3]

def baz():
    foo()

baz() # prints <function baz at 0x0...>
    

要回复问题请先登录注册