【问题标题】:Python: How do you repeatedly call programs from a base program?Python:如何从基础程序中重复调用程序?
【发布时间】:2014-03-04 02:38:02
【问题描述】:

我正在尝试制作一个“主”程序,该程序调用其他程序,完成后返回主程序。我希望能够重复调用相同的程序。问题是,如果我第一次使用“导入”调用程序,第二次调用时它不起作用。

主要:

main = input("What option would you like?")

if main == 1:
    import proga
elif main == 2:
    import progb
else:
    import probc

more = input("Would you like more?")
if more == 'y':
    import main
else:
    print "Have a nice day!"

节目: 计算这个 打印这个

progb: 计算 打印出来

等等

当我对“更多”问题回答“y”时,它会回答“main = input”部分,但如果我选择一个我已经选择的选项,它就不会播放它,因为它已经被导入。我还有其他方法可以再次播放这些节目吗?我应该使用 execfile 吗?操作系统系统?谢谢!

【问题讨论】:

    标签: python


    【解决方案1】:

    在 Python 2 及以下版本中尝试execfile()

    execfile("proga.py", {})
    

    对于更高版本(Python 3+),试试这个:

    exec(compile(open(filename, "rb").read(), "proga.py", 'exec'))
    

    【讨论】:

    • 这行得通,尽管我可能会尝试将它们写成 Descrip 建议的函数。
    【解决方案2】:

    重复调用程序效率不高。同样,对于您的示例,完全没有必要调用另一个程序。最好的方法是将 proga 和 progb 编写为函数,然后将它们导入到您的主程序中。之后,调用函数。

    More information here.

    【讨论】:

      猜你喜欢
      • 2013-10-22
      • 1970-01-01
      • 2015-12-26
      • 1970-01-01
      • 1970-01-01
      • 2018-12-19
      • 2017-10-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多