术语:Argv,调用程序

时间:2015-11-16 01:45:59

标签: python terminology argv sys

Hy Python社区 -

这是关于Argv和"调用"

的基本术语问题

我是python和programmring的新手。

我正在阅读openbookproject.com上sys模块中的argv函数:

"当运行Python脚本时,argv变量包含从命令行读入的字符串列表。这些命令行参数可用于在调用的同时将信息传递给程序。" http://openbookproject.net/thinkcs/python/english2e/ch10.html

从定义来看似乎非常清楚,但我还是想仔细检查一下:"当它被调用时#34;只是意味着,"当你运行程序时?"第三种方式是否合适?" Argv可以在运行时将信息传递给程序?"

谢谢。

3 个答案:

答案 0 :(得分:1)

  1. 是的,这就是“援引”的含义。

  2. 不,因为“运行时”涵盖了运行进程的整个时间窗口。准确地说,argv可以在调用时将信息传递给程序。

答案 1 :(得分:1)

  

"当它被调用时#34;只是意味着,"当你运行程序时?"

是。 "同时调用它" 意味着您可以在以后运行时将数据传递给程序,即,您可以使用命令行参数({{1} })将数据传递给程序"同时调用" 和其他一些方法(IPC)稍后传递它,例如,通过标准输入它正在运行。

  

第三种说法是否恰当," Argv可以在运行时将信息传递给程序?"

没有

sys.argv定义了命令行对流程的看法,例如argv[0] sets one of the name for the process (another one is derived from the path to the actual executable)。在POSIX上,argvexec*() functions的参数,传递给C argv,它是C程序的入口点。

换句话说,main(argc, argv)用于调用(启动/运行)进程,但是@G Fetterman mentioned"在运行时"可以指整个进程的运行时间,而不仅仅是调用时间。甚至在流程运行之前就可以知道argv,并且在流程开始后argv通常保持不变。

答案 2 :(得分:0)

是的,这是正确的。请考虑以下代码testargs.py

import sys

print(sys.argv[1])

当您以python testargs.py banana运行此脚本时,您会看到结果显示为“banana”。请注意,argv [0]是脚本名称,之后给出的任何参数都是argv [1],argv [2]等等。有关命令行参数的更复杂使用,请考虑使用包含选项添加帮助文档和其他功能的Argparse模块。

编辑:我只讨论了被调用的部分,而不是运行时问题。