如何从命令行调用Python程序中的函数
例如,假设我有一个名为myscript.py的文件 此文件包含以下代码如何从命令行调用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( ) 这对我不起作用。由于某种原因
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