Hy Python社区 -
这是关于Argv和"调用"
的基本术语问题我是python和programmring的新手。
我正在阅读openbookproject.com上sys模块中的argv函数:
"当运行Python脚本时,argv变量包含从命令行读入的字符串列表。这些命令行参数可用于在调用的同时将信息传递给程序。" http://openbookproject.net/thinkcs/python/english2e/ch10.html
从定义来看似乎非常清楚,但我还是想仔细检查一下:"当它被调用时#34;只是意味着,"当你运行程序时?"第三种方式是否合适?" Argv可以在运行时将信息传递给程序?"
谢谢。
答案 0 :(得分:1)
是的,这就是“援引”的含义。
不,因为“运行时”涵盖了运行进程的整个时间窗口。准确地说,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上,argv
是exec*()
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模块。
编辑:我只讨论了被调用的部分,而不是运行时问题。