【问题标题】:What is the exact term for 'argv' in python?python中'argv'的确切术语是什么?
【发布时间】:2018-03-30 08:14:07
【问题描述】:

我目前正在尝试掌握可以从 syssystem- 导入的 argv 函数的确切名称(如果它可以称为函数)具体参数。我找到了 3 个定义:

那么它是哪一个?也许人们如何称呼它并不重要?它甚至有一个公认的名称吗?

谢谢大家!

【问题讨论】:

  • arg ... vatever?对不起。这不是 Python 特定的,而是从 C 约定“导入”的
  • 根据 Kernighan & Ritchie 的 The C programming Languageargv 代表“参数向量”。
  • @PM2Ring 如果 K&R 真的为 C 发明了向量,世界将会变得更美好:)
  • @Jean-FrançoisFabre 哈哈 - 这是最好的:argv(atever) !!!谢谢!
  • @tentkl 似乎带有德国口音 :)

标签: python python-2.7 terminology argv term


【解决方案1】:

这并不重要。它是一个list(不是函数),argv 这个名称只是从 C 中使用的常规名称借来的。大多数时候,最好使用像 argparse 这样的库来处理命令行参数,在这种情况下你甚至不会直接使用sys.argv

【讨论】:

    【解决方案2】:

    argv 是一个变量(参数列表),因此不是函数。

    命名似乎来自 C 中使用的约定,它使用argc(参数计数)和argv(参数向量)。另见https://stackoverflow.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 时通常会明白你在说什么,不管你选择什么称呼它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-23
      • 1970-01-01
      • 2016-01-14
      • 2015-05-29
      • 2018-10-23
      • 1970-01-01
      • 2011-12-28
      • 1970-01-01
      相关资源
      最近更新 更多