-3

例如,假设我有一个名为 myscript.py 的文件

该文件包含以下代码。

foo(var):
   return var

我将如何在命令行上使用参数 var 调用函数 foo。

我知道我可以进入 myscript.py 所在的目录并输入。

>>> python myscript.py

这将运行 myscript.py。唯一的问题是 myscript.py 在运行时不会自动调用 foo。

我试过使用

if __name__ == "__main__":
    foo( )

这对我不起作用。出于某种原因,当我这样做时,什么也没有发生。我没有收到任何错误消息,也没有调用任何内容。

4

2 回答 2

2

你没有得到任何输出,因为你没有生成任何输出。尝试调用print

def foo(var):
    print(var)

if __name__ == '__main__':
    foo('Hello, world')
于 2013-03-12T00:22:20.953 回答
0

您必须使用该sys模块从命令行传递参数。你可以这样做:

import sys

def foo(var):
  return var

if __name__ == '__main__':
  # arguments check
  if len(sys.argv) != 2:
    print "USAGE: %s <value>" % sys.argv[0]
    sys.exit(1)

  # get the agument so as to use it to the function call
  arg = sys.argv[1]

  # call the function using this argument
  val = foo(arg)

  # print the returned value
  print val

然后你可以通过这个命令运行你的 python 脚本: python myscript.py 3 给作为参数,例如数字 3

于 2013-03-12T00:29:35.620 回答