【发布时间】:2012-03-11 04:28:16
【问题描述】:
在我的脚本中,我有四个这样工作的函数:
def function_four():
# Does Stuff
function_one()
def function_three():
# Does Stuff
function_two()
def function_one():
usr_input = input("Options: '1') function_three | '2') Quit\nOption: ")
if usr_input == '1':
function_three()
elif usr_input == '2':
sys.exit()
else:
print("Did not recognise command. Try again.")
function_one()
def function_two():
usr_input = input("Options: '1') function_four | '2') function_three | '3') Quit\nOption: ")
if usr_input == '1':
function_four()
elif usr_input == '2':
function_three()
elif usr_input == '3':
sys.exit()
else:
print("Did not recognise command. Try again.")
function_one()
我需要知道这是否会导致我认为会出现的问题:函数永远不会关闭,导致出现大量打开的函数(并且可能会浪费内存并最终减速)出现,直到用户出现才消失退出脚本。如果属实,那么这很可能是不好的做法且不可取,这意味着必须有替代方案?
【问题讨论】:
-
我们可以看到代码而不是对其进行口头描述吗?另外,功能三和四的意义何在?
-
@tzaman Here is the simplified code。除了简单地调用其他函数之外,还有一些事情发生,但它们对这个问题并不重要,所以为了简单起见,我把它们省略了。
-
这段代码刚刚让我的 Python 3.2 崩溃了——我不是指 RuntimeException,我指的是真正的崩溃——出现“致命的 Python 错误:无法从堆栈溢出中恢复。中止陷阱”消息.诚然,我不得不按住返回键一分钟,但还是这样。
-
@Eden:你可以edit你的问题,直接用你的代码替换你的varbal描述。真正的代码比它的描述更容易理解。
-
我为您编辑了问题 Rik Poggi。 Tzaman:最后一行在我的链接中没有正确对齐,它应该在最左边,详情请参阅问题。帝斯曼:奇怪。为我工作。 “sys.exit()”需要“include sys”,但除此之外我不知道问题可能是什么。
标签: python function memory python-3.x