术语:Argv,调用程序

2024-03-29 11:13:34 发布

您现在位置:Python中文网/ 问答频道 /正文

Hy Python社区-

这是关于Argv和“invoke”的基本术语问题

我对python和编程还不熟悉。你知道吗

我在读关于上的sys模块中的argv函数openbookproject.com地址:

argv变量保存运行Python脚本时从命令行读入的字符串列表。这些命令行参数可用于在调用程序的同时将信息传递到程序中

从定义上看似乎很清楚,但我还是想仔细检查一下:“在调用它的时候”是否只是指“运行程序的时候?”用第三种方式说“Argv可以在运行时将信息传递到程序中”是否合适你知道吗

谢谢你。你知道吗


Tags: 模块函数命令行程序com信息编程sys
3条回答
  1. 是的,这就是“调用”的意思。

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

是的,没错。考虑以下代码testargs.py

import sys

print(sys.argv[1])

当您将这个脚本作为python testargs.py banana运行时,您会看到结果打印“banana”。请注意,argv[0]是脚本名称,其后给出的任何参数都是argv[1]、argv[2],依此类推。要更复杂地使用命令行参数,请考虑使用Argparse模块,该模块包含选项、添加帮助文档和其他功能。你知道吗

编辑:我只讨论了被调用的部分,没有讨论运行时问题。你知道吗

Does "at the time it is invoked" just mean, "when you run the program?"

是的。“在调用它的同时”意味着您可以稍后在程序运行时将数据传递给程序,也就是说,您可以使用命令行参数(sys.argv)将数据传递给程序“在调用它的同时”,并使用一些其他方法(IPC)稍后传递数据,例如,在程序运行时通过标准输入。你知道吗

Would it be appropriate in a third way to say, "Argv can pass information into a program at runtime?"

没有

argv定义命令行在进程中的外观,例如^{} sets one of the name for the process (another one is derived from the path to the actual executable)。在POSIX上,argv^{} functions的一个参数,它被传递给C main(argc, argv),C是C程序的入口点。你知道吗

换句话说,argv用于调用(启动/运行)进程,但是@G Fetterman mentioned“在运行时”可能指整个进程的运行时间,而不仅仅是调用时间。argv可能在进程运行之前就知道了,而argv通常在进程启动后保持不变。你知道吗

相关问题 更多 >