【发布时间】:2020-02-15 10:28:08
【问题描述】:
我编写的程序在终端执行时没有打印任何内容,所以我尝试运行以下代码
import sys
#!/usr/bin/python
def main(argv):
print "hell0\n"
sys.stdout.flush()
this is the terminal为什么不打印你好。主函数是否还在运行?
【问题讨论】:
标签: python
我编写的程序在终端执行时没有打印任何内容,所以我尝试运行以下代码
import sys
#!/usr/bin/python
def main(argv):
print "hell0\n"
sys.stdout.flush()
this is the terminal为什么不打印你好。主函数是否还在运行?
【问题讨论】:
标签: python
Python 不会自动调用 main()(您需要使用 sys 库来获取 argv)。
#!/usr/bin/python
import sys
def main():
print "hell0\n"
main()
【讨论】:
你没有在任何地方调用main,你只是定义了它。
【讨论】:
有两件事:(1) 您的#!/use/bin/python 必须是文件中的第一件事,(2) 您需要添加对main 的调用。实际上,您是在定义它,但实际上并未调用它。
在 Python 中,您通常不会将命令行参数传递给 main,因为它们在 sys.argv 中可用。因此,您可以将 main 定义为不接受任何参数,然后在文件底部调用它:
if __name__ == "__main__":
sys.exit(main())
__name__ 的测试可防止在文件被导入时调用 main,而不是被执行,这是处理它的标准方法。
如果你想显式地将命令行参数传递给main,你可以这样称呼它:
if __name__ == "__main__":
sys.exit(main(sys.argv))
这就是您需要对您当前拥有的定义执行的操作。
【讨论】:
main 的方式你需要传递参数。我更新了我的答案。
在 python 中,您的代码不必在函数中,所有函数都必须显式调用。
试试这样的:
#!/usr/bin/python
import sys
print "hell0\n"
【讨论】:
确保在定义函数后调用它,
定义一个函数只将它存储在内存中。
#!/usr/bin/python
import sys
def main(argv):
print "hell0\n"
sys.stdout.flush()
main()
【讨论】:
通常,人们会在脚本末尾添加一些代码来运行 main(),例如
if __name__ == "__main__":
main()
然后,您可以在终端中运行您的脚本,它会调用 main() 方法。
【讨论】: