Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从命令行调用Python程序中的函数_Python_Windows_Cmd - Fatal编程技术网

如何从命令行调用Python程序中的函数

如何从命令行调用Python程序中的函数,python,windows,cmd,Python,Windows,Cmd,例如,假设我有一个名为myscript.py的文件 此文件包含以下代码 foo(var): return var 如何在命令行上调用参数为var的函数foo 我知道我可以转到myscript.py所在的目录并键入 >>> python myscript.py 它将运行myscript.py。唯一的问题是myscript.py在运行时不会自动调用foo 我试过使用 if __name__ == "__main__": foo( ) 这对我不起作用。由于某种原因

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

此文件包含以下代码

foo(var):
   return var
如何在命令行上调用参数为var的函数foo

我知道我可以转到myscript.py所在的目录并键入

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

我试过使用

if __name__ == "__main__":
    foo( )

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

您没有得到任何输出,因为您没有生成任何输出。请尝试拨打:

您必须使用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将其返回给调用者。你预计会发生什么?有人叫福。你只是a没有传递任何东西给它,b它没有做任何事情。您将需要使用argparse或sys来处理来自clip的输入,您如何知道没有调用任何东西。在您的示例中,您只需丢弃函数返回的任何内容。
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