python中'argv'的确切术语是啥?
Posted
技术标签:
【中文标题】python中\'argv\'的确切术语是啥?【英文标题】:What is the exact term for 'argv' in python?python中'argv'的确切术语是什么? 【发布时间】:2018-03-30 08:14:07 【问题描述】:我目前正在尝试掌握可以从 sys 或 system- 导入的 argv 函数的确切名称(如果它可以称为函数)具体参数。我找到了 3 个定义:
argument vector argument value argument variable那么它是哪一个?也许人们如何称呼它并不重要?它甚至有一个公认的名称吗?
谢谢大家!
【问题讨论】:
arg ... vatever?对不起。这不是 Python 特定的,而是从 C 约定“导入”的 根据 Kernighan & Ritchie 的 The C programming Language,argv
代表“参数向量”。
@PM2Ring 如果 K&R 真的为 C 发明了向量,世界将会变得更美好:)
@Jean-FrançoisFabre 哈哈 - 这是最好的:argv(atever) !!!谢谢!
@tentkl 似乎带有德国口音 :)
【参考方案1】:
这并不重要。它是一个list(不是函数),argv
这个名称只是从 C 中使用的常规名称借来的。大多数时候,最好使用像 argparse
这样的库来处理命令行参数,在这种情况下你甚至不会直接使用sys.argv
。
【讨论】:
【参考方案2】:argv
是一个变量(参数列表),因此不是函数。
命名似乎来自 C 中使用的约定,它使用argc
(参数计数)和argv
(参数向量)。另见https://***.com/a/3024202/693140
【讨论】:
也许你可以向我解释一下为什么变量及其参数在 argv 中是倒置的?通常在python中,变量是通过命名和分配参数来创建的:variable = "its argument" or variable = 1 or variable = True;使用 argv 时:argument_1,argument_2 = argv【参考方案3】:这 3 个都不令人满意,因为 1)这是一个列表,2)“参数”含糊不清且具有误导性(这些实际上是“命令行参数”)
一个更好的术语是“命令行参数列表”。
来自文档:
sys.argv
传递给 Python 脚本的命令行参数列表。 argv[0] 是脚本名称(取决于操作系统是否 这是一个完整的路径名与否)。如果该命令是使用 -c 解释器的命令行选项,argv[0] 设置为字符串'-c'。如果没有将脚本名称传递给 Python 解释器, argv[0] 是空字符串。
遍历标准输入,或在 命令行,见文件输入模块。
PS:这有点迂腐,人们看到sys.argv
时通常会明白你在说什么,不管你选择什么称呼它。
【讨论】:
以上是关于python中'argv'的确切术语是啥?的主要内容,如果未能解决你的问题,请参考以下文章