如何在unix中运行python函数?

时间:2012-12-06 15:03:14

标签: python unix

  

可能重复:
  What does <if __name__==“__main__”:> do?

每当我尝试在unix中运行我的python脚本时,都不会发生任何事情。我会按行键入内容

 $ python script.py

并且所有返回的内容都是

 $

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

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的函数运行?

谢谢!

2 个答案:

答案 0 :(得分:2)

当您从命令行运行python脚本时,_ _ name__始终为'__main __'。

尝试类似:

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

从Python解释器中,你必须做更多的事情:

>>> import script
>>> script.merge()

答案 1 :(得分:2)

__name__ == "__main__"
如果您从同一文件中运行代码

,则不应更改

if __name__ == "__main__":
    merge()
如果您只是在另一个文件中导入该模块,请不要为此烦恼

This link更多地解释了你