我正在编写一个简单的Python程序,其中包含一些函数,其中一个是执行其他函数的main()
函数。但是,当我运行下面的代码时,没有输出。有人可以告诉我他们是否看到结构错误吗?
def print1():
print("this is also a function")
def print2():
print("this is a function")
def main():
print1()
print2()
你需要调用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()
。
将其添加到代码底部:
if __name__ == "__main__":
main()
请参阅 https://docs.python.org/3/library/\_\_main\_\_.html
main()
需要显式调用。您可以在没有 if
语句的情况下执行此操作,但这允许您的代码是模块或主程序。如果将其作为模块导入,则不会调用main()
。如果它是主程序,那么它将被调用。
你像C程序员一样思考。在这种情况下,Python 的行为更像是一个 shell 脚本。任何不在函数或类定义中的内容都将被执行。
您需要调用 main()
才能运行。
我相信你的意思是
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
。