gpt4 book ai didi

python - 如何在调用另一个函数后强制函数退出?

转载 作者:太空宇宙 更新时间:2023-11-04 09:56:45 24 4
gpt4 key购买 nike

我有两个函数,每个函数都在最后一行调用另一个函数作为传递控制的一种方式。有没有一种优雅的方法可以强制一个函数在另一个函数执行之前退出,这样你就不会把你的程序堆成一堆尸体?
示例:

def f1(x):
print("f1",x)
f2(x+1)

def f2(x):
print("f2",x)
f1(x+1)

f1(0)

现在的情况是,在约 1000 次调用后,它遇到了递归限制。
当然,一个简单的外部控制结构可以解决这个问题,但我宁愿将控制流刻在功能。


编辑:

但这不是相当阻碍吗?

如果 Python 努力成为一种具有高度抽象的高级语言,在模块之上构建模块的某个时刻,Python 不会因为不减少其足迹而崩溃吗?

最佳答案

如果您希望一个函数在另一个函数被调用之前退出,您必须实际退出该函数,而不是让它调用另一个函数:

def f1(x):
print('f1', x)
return f2, (x+1,)
def f2(x):
print('f2', x)
return f1, (x+1,)

f, args = f1, (0,)
while True:
f, args = f(*args)

这将需要您希望避免的外部控制结构。


顺便说一句,您尝试使函数调用工作的方式很像 GOTO,并且最终会对程序复杂性和可维护性产生相同的影响。

关于python - 如何在调用另一个函数后强制函数退出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45514448/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com