0

可能重复:
<if __name__==“__main__”:> 做什么?

每当我尝试在 unix 中运行我的 python 脚本时,什么都不会发生。我会按顺序输入一些东西

 $ python script.py

而所有将被退回的是

 $

现在我知道这在我的代码中不是问题,因为它在空闲时运行良好,所以我认为我需要在我的代码中添加其他内容才能从命令行运行它。在关于 python 的谷歌教程中,我被介绍到样板代码,它被附加到函数的末尾

def main():
  print ...
  etc etc
if __name__ == '__main__':
  main()

如果我编写一个名为 main 的函数并像这样运行它,它就可以正常工作。但是,当我将我的函数命名为其他名称时,它不会起作用。例如

def merge():
  print ..
  etc etc
if __name__ == '__merge__':
  merge()

该函数根本不会在命令行上产生任何输出即使我只是从单词 main 的末尾删除了 n,但每次它出现在上面的 main 函数中时,它也不会起作用。如何让 python 函数在命令行上运行?python 到底是怎么回事?只让名为 main 的函数运行?

谢谢!

4

2 回答 2

2

从命令行运行 python 脚本时,__name__ 始终为 '__main__'。

尝试类似:

def merge():
  print ..
  etc etc
if __name__ == '__main__':
  merge()

在 Python 解释器中,您必须执行以下操作:

>>> import script
>>> script.merge()
于 2012-12-06T15:05:50.417 回答
2
__name__ == "__main__"

不应该改变,如果你从同一个文件中运行代码,你有你的功能

if __name__ == "__main__":
    merge()

如果您只是在另一个文件中导入该模块,请不要为此烦恼

这个链接向你解释了更多

于 2012-12-06T15:06:46.127 回答