python从函数返回

时间:2017-10-17 17:13:51

标签: python function cpython

是否可以从函数返回并继续执行函数下的代码。我知道这可能听起来很模糊,但这是一个例子:

def sayhi():
    print("hi")
    continue_function() #makes this function continue below in stead of return

#the code continues here with execution and will print hey
print("hey")


sayhi()

执行此操作时,代码应执行此操作:

  • 打印“嘿”
  • 它调用sayhi()函数
  • 打印“hi”
  • 它调用一个函数使它在函数之后继续(理论上类似的行为可以通过使用装饰器来实现)
  • 再打印“嘿”
  • 再次调用sayhi()

我完全清楚通过使用for循环可以实现类似的行为但是对于我正在处理此功能的项目是 required ,并且无法通过使用循环来实现。

我想到的一些解决方案(但我不知道如何执行它们)是:

  • 以某种方式清除堆栈python用于从一个函数返回到另一个函数
  • 更改返回值
  • 改变python本身(只是为了弄清楚:它会解决问题,但它是我做的事情想要做的事,因为项目必须可以在非改进版本的python上使用
  • 使用一些c扩展来改变python本身的python行为

1 个答案:

答案 0 :(得分:1)

不带循环的重复可以通过递归来完成:

def sayhi():
    print("hey")
    print("hi")
    sayhi()


sayhi()

我假设你有一些终止条件要插入。如果没有,此代码将提供RecursionError