示例:https://docs.python.org/3/library/functions.html#func-bytearray
class bytearray([source [,encoding [,errors]]])
通常我只是通过示例来解决这个问题,但我想了解为什么可选参数的格式以这种方式编写。具体做法是:
当可选参数在另一个参数的[]内时,我应该解释什么?如果[ a [, b ]],那么与 a 相关的 b 意味着什么?如果两者相互独立(订单除外),为什么 b 包含在 a 的括号中?
对于第二个和其他参数,为什么括号内有逗号?什么使得[ a [, b ]]和[ a [ b ]]之间的差异给出了什么从上面第一个问题两者之间的关系?
除了我们不必指定/写入参数名称之外,这种格式在下面的情况下如何有利或适用?
class bytearray(source = default_value1,encoding = default_value2, errors = default_value3)
答案 0 :(得分:4)
这些是可选参数,并且依赖于他们的选项'。
鉴于class bytearray([source[, encoding[, errors]]])
,有效用途为
class bytearray()
class bytearray(source)
class bytearray(source, encoding)
class bytearray(source, encoding, errors)
嵌套括号表示,例如,当您指定encoding
参数时,您只能指定source
参数。
为什么括号内有逗号?因为逗号是可选参数的一部分;如果您没有选择指定参数,那么您就不应该提供逗号。
这对三个可选参数有何优势?如上所述 - 有时参数仅在提供另一个参数时才有意义。在这种情况下,图书馆作者已决定他们不希望您提供encoding
参数,除非您提供了source
参数。