首页 > 解决方案 > 从python中的另一个函数调用main是否错误

问题描述

我是 python 新手,我一直想知道如果某些条件不适用,从另一个函数调用 main 以基本上重新运行程序是否是不好的做法。

这是一个代码示例。

def main():
        userInput = input("Please input a word(\"terminate\" exits): ")
        if(len(userInput)>=5):
            wordLength(userInput)     
        else:
            wordLength()
        

def wordLength(word = "Default print"):
    
    if (word != "Terminate"):
        print(word)
        main()
    
        
if __name__ == "__main__":
    main()

这是不好的做法,我应该以不同的方式来做吗?也许有一个while循环?

标签: pythonpython-3.x

解决方案


你应该在这里使用一个while循环。从另一个函数调用 main 并不是“坏事”,但是这种模式没有被广泛使用,未来的维护者(甚至是假设的维护者)很难阅读和理解。

如果出于同样的原因完全可以避免的话,通常也不建议使用这种类型的循环递归函数调用,以及向堆栈添加更多内存。

请记住,几乎所有已建立的设计规则和模式(包括此处列出的)都存在边缘情况和例外,因此当您认为可能“重新发明轮子”时,最好征求第二意见。


推荐阅读