【问题标题】:Python main function not working [duplicate]Python主函数不起作用[重复]
【发布时间】:2016-06-08 23:10:18
【问题描述】:

我正在编写一个带有一些函数的简单 Python 程序,其中一个是 main() 函数执行其他函数。但是,当我运行下面的代码时,没有输出。有人能告诉我他们是否发现结构中有错误吗?

def print1():
    print("this is also a function")
def print2():
    print("this is a function")

def main():
    print1()
    print2()

【问题讨论】:

  • 你在哪里调用 main?

标签: python function main


【解决方案1】:

您需要致电main()。现在它只是一个定义。如果没有人使用单词,字典中的条目有什么用?

def print1():
    print("this is also a function")
def print2():
    print("this is a function")

def main():
    print1()
    print2()

main()

在 Python 程序中,根据文件是被导入还是运行,通常会做不同的事情。执行文件时,__name__ 变量设置为'__main__' 或文件名。如果文件作为 python 脚本执行,则设置为'__main__',如果正在导入,则设置为文件的名称。您可以使用此信息,这样如果只是导入而不是作为 python 脚本运行,您实际上不会运行任何东西:

if __name__ == '__main__':
    main()

这样,您可以导入模块,并在不调用main() 的情况下使用函数。但是,如果它作为 python 脚本运行,main() 被调用。

【讨论】:

    【解决方案2】:

    您需要调用main() 才能运行它。

    【讨论】:

      【解决方案3】:

      我相信你的意思是

      def print1():
          print("this is also a function")
      def print2():
          print("this is a function")
      
      if __name__ == '__main__':
          print1()
          print2()
      

      调用这个脚本something.py,然后从你的命令行运行python something.py

      【讨论】:

        【解决方案4】:

        将此添加到代码的底部。

        if __name__ == "__main__":
            main()
        

        https://docs.python.org/2/library/main.html

        Main 需要显式调用。您可以在没有 if 语句的情况下执行此操作,但这允许您的代码成为模块或主程序。如果作为模块导入,则不会调用 main()。如果是主程序,就会被调用。

        您像 C 程序员一样思考。在这种情况下,python 更像是一个 shell 脚本。任何不在函数或类定义中的东西都将被执行。

        【讨论】:

          猜你喜欢
          • 2014-06-30
          • 2021-01-03
          • 2017-11-23
          • 2019-06-04
          • 1970-01-01
          • 2021-11-15
          • 1970-01-01
          • 2013-05-13
          相关资源
          最近更新 更多