4

我是 Python 的初学者。

我不明白 Python 函数描述。例如,函数getopt

getopt.getopt(args, options[, long_options])

是什么options[, long_options]意思?

4

4 回答 4

5

这意味着方括号中的部分是可选的。

http://docs.python.org/2/library/getopt.html

long_options,如果指定,必须是字符串列表...

如果您添加此可选参数,您还需要添加逗号 - 如果您不添加它,您也不能添加逗号。

顺便说一句,这种表示法是指定参数时的常用约定,例如也用于可以传递给 unix shell 命令的命令行参数。

于 2013-07-02T14:08:10.440 回答
3

学习EBNF语法会很有帮助,这是一种以正式方式为各种语言或命令指定语法的方法。虽然许多工具的语法文档不使用严格的 EBNF,但它们经常借用其符号。例如方括号表示可选组件。逗号正式表示连接,通常用于在方括号的上下文中暗示符号的可选多次重复。

Usage                Notation
definition           =
concatenation        ,
termination          ;
alternation          |
option               [ ... ]
repetition           { ... }
grouping             ( ... )
terminal string      " ... "
terminal string      ' ... '
comment              (* ... *)
special sequence     ? ... ?
exception            -

一些工具/文档也将借鉴BNF语法,该语法使用大量尖括号< ... >来指定表达式中的符号。

于 2013-07-02T14:17:13.143 回答
0

对于命令行选项,常规选项类似于-hlong 选项是--help. 它们的含义相同并且具有相同的效果,但简短版本前面有一个连字符而不是两个。

正如其他答案中所指出的那样,在这种情况下,options它们是必需的,但long_options不是,这就是它们在方括号中的原因。

于 2013-07-02T14:08:23.767 回答
0

这是为函数标记可选参数的标准方法。因此,在这种情况下long_options是可选的,但args不是options。逗号后面options也是可选的,但如果您指定,则为必需long_options

于 2013-07-02T14:09:21.897 回答