【问题标题】:The main() function appears to not work [duplicate]main() 函数似乎不起作用[重复]
【发布时间】:2013-06-19 21:45:26
【问题描述】:

我是 Python 新手,我使用的是 Python 3.3.2。我运行了以下代码:

import sys
def random(size=16):
    return open(r"C:\Users\ravishankarv\Documents\Python\key.txt").read(size)
def main():
    key = random(13)
    print(key)

并期望它打印密钥文件中的内容。该程序在 IDLE 上运行没有错误,但没有任何反应。未打印密钥。

有人可以帮忙吗?

【问题讨论】:

    标签: python main


    【解决方案1】:

    你根本没有调用你的 main 函数,所以 Python 解释器不会为你调用它。

    将此添加为最后一行,以便始终调用它:

    main()
    

    如果你使用常见的:

    if __name__ == "__main__":
        main()
    

    它将确保您的 main 方法仅在该模块被 Python 解释器作为起始代码执行时才被调用,更多相关内容将在此处讨论:What does if __name__ == "__main__": do?

    如果你想知道如何编写最好的'main'函数,Guido van Rossum (the creator of Python) wrote about it here.

    【讨论】:

    • 乐高,它似乎仍然不起作用。我在代码末尾包含了 main() 。但似乎什么也没有发生。原始帖子中的代码没有打印任何内容。
    【解决方案2】:

    python中没有main这样的方法,你要做的是:

    if __name__ == '__main__':
        main()
    

    【讨论】:

      【解决方案3】:

      您正在定义一个函数,但从未调用它。因此,您没有收到任何错误,但没有任何反应。添加这个添加结束,它会工作:

      if __name__ == "__main__":
          main()
      

      【讨论】:

        【解决方案4】:

        您没有调用该函数。将main() 放在代码底部。

        【讨论】:

          【解决方案5】:

          Python 不像其他语言那样自动调用main() 函数。你所做的只是定义了你的函数。

          你必须手动调用你的主函数:

          main()
          

          此外,您通常会在某些代码中看到这一点:

          if __name__ == '__main__':
              main()
          

          【讨论】:

          • 为什么要投反对票?
          • 可能人们不喜欢第二个代码示例没有适当的解释。因为它也可能是魔术代码。请注意,这里的其他人也没有这样做,但 LegoStormtroopr 的回复中有一个有用的链接。
          • @AndrewS 三年后 - 我同意你的观点,但我怀疑它是否有理由投反对票:P。
          猜你喜欢
          • 2018-01-10
          • 1970-01-01
          • 2014-03-20
          • 1970-01-01
          • 1970-01-01
          • 2018-08-11
          • 2015-06-29
          • 2013-02-06
          • 1970-01-01
          相关资源
          最近更新 更多