再次播放功能不在程序中工作

时间:2017-10-08 11:04:49

标签: python function recursion

我写了一个初学者程序来玩游戏。程序的主要结构在外部父函数中嵌套各种函数。我有一个关于从fparent()内拨打fnested()的问题。

注意:遗憾的是,我无法分享原始代码,因为这是针对大学的,并且由于学术诚信政策,我无法公开代码。

实施背后的想法是,如果用户想要重复该程序,他们应该输入一个有效的指标YES。这发生在嵌套函数中。该程序试图识别此输入,然后再次调用fparent(),重新启动该程序。

目前无效。

  • 我想知道是否有办法对此功能进行编码

欢迎链接到现有答案,因为我无法找到任何直接帮助我的内容。

1 个答案:

答案 0 :(得分:0)

如果你试图直接从嵌套中调用父函数,它会给你"堆栈溢出"达到最大深度。

正如你所说的那样:

  

他们应该输入一个有效的指标,YES。这发生在一个   嵌套函数。该计划旨在认识到这一点   再次调用fparent(),重新启动程序。

您可以尝试这样的事情:

def f0():
    def f1():
        print("do some stuff in function f1")
    def f2():
        print("do some stuff in function f2")
    def f3():
        print("do some stuff with function f3")

    user_input=str(input("Do you want to repeat the program Yes or No  >> "))
    map_userinput={"Yes":f0,"Level2":f2,"Level3":f3}
    if user_input=="Yes":
        print("ok calling the parent function from nested function")
        map_userinput[user_input]()

    elif user_input=="Level2":
        map_userinput[user_input]()

    else:
        print("continue with this nested function")


f0()