繁体   English   中英

python从函数返回

[英]python return from function

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


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() 函数
  • 它打印“嗨”
  • 它调用一个函数使其在函数之后继续(理论上可以通过使用装饰器来实现类似的行为)
  • 它再次打印“嘿”
  • 它再次调用 sayhi()
  • 等等

我完全意识到这样一个事实,只需使用 for 循环就可以实现类似的行为,但对于我正在研究的项目,此功能是必需的,并且无法通过使用循环来实现。


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

  • 以某种方式清除python用于从一个函数返回到另一个函数的堆栈
  • 改变返回值
  • 改变蟒本身(只是为了清楚:它会解决这个问题,但它是什么我不想做怎么一回事,因为该项目必须在蟒蛇的未变质的版本可用
  • 使用一些 c 扩展从 python 本身改变 python 的行为

没有循环的重复可以用递归来完成:

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


sayhi()

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM