【问题标题】:Why is nothing running if I import a module? [duplicate]如果我导入一个模块,为什么什么都没有运行? [复制]
【发布时间】:2021-05-22 20:33:28
【问题描述】:

我正在导入一个模块,但是当我运行它时,它显示Process finished with exit code 0

我的代码:from Game import *

我已经尝试了所有建议,我什至查看了堆栈溢出的答案,但没有任何效果。

当我运行该模块时它运行良好,但我不知道它为什么不工作。如果您有任何建议,请让我知道。谢谢。

【问题讨论】:

  • 游戏模块有入口点吗?
  • 你能解释一下你的意思吗?我是 python 新手。但我正在使用我已经导入 pygame 的 pycharm 来制作这个模块。
  • 当然可以。如果 Game 是一个模块,那么您可能只有函数、常量等。因此,如果您执行您编写的操作,python 会导入它并返回 0,因为它有效。如果你想让代码运行,你需要在游戏模块中申请 if name == 'main': begin of your code。这样 python 就知道从哪里开始执行你的代码。阅读更多关于 main in python 以获得更好的想法
  • 我实际上在最后的代码中有:if name == 'main': main()。这还能用吗?
  • 这篇文章的“重复”与这里的实际问题无关,也没有提供可行的解决方案,所以我投票重新开放。

标签: python import pycharm


【解决方案1】:

if __name__ == 'main'block 的重点是在将该脚本作为模块导入时阻止其中的代码运行;只有您直接执行的“主”脚本才会执行该语句中的代码。如果您只是用直接调用main() 替换该语句,那么该函数将在导入时运行。

欲了解更多信息,请参阅:What does if __name__ == "__main__": do?

如果您想从您的脚本中执行Gamemain,您的代码必须如下所示:

from Game import *
main()

【讨论】:

  • 如何在这个模块之后直接导入另一个模块?所以它在当前结束后运行?我试过了,但它不起作用。
  • 通常单独的问题应该单独发布。但是我认为这很简单。如果您导入两个模块GameGame1,例如,每个模块都有一个main,那么您必须执行from Game import mainfrom Game1 import main,然后是Game.main(),然后是Game1.main()
  • 嗯不工作,但感谢您的帮助。我再问一个问题。
  • @Davina 是的,抱歉,我实际上并不确定这是否可行。
猜你喜欢
  • 1970-01-01
  • 2019-05-25
  • 1970-01-01
  • 2022-10-02
  • 2017-04-05
  • 2017-05-31
  • 2011-09-25
  • 1970-01-01
  • 2020-11-10
相关资源
最近更新 更多