如何理解Python函数参数格式

时间:2018-01-05 19:35:31

标签: python

示例:https://docs.python.org/3/library/functions.html#func-bytearray

  

class bytearray([source [,encoding [,errors]]])

通常我只是通过示例来解决这个问题,但我想了解为什么可选参数的格式以这种方式编写。具体做法是:

  1. 当可选参数在另一个参数的[]内时,我应该解释什么?如果[ a [, b ]],那么与 a 相关的 b 意味着什么?如果两者相互独立(订单除外),为什么 b 包含在 a 的括号中?

  2. 对于第二个和其他参数,为什么括号内有逗号?什么使得[ a [, b ]]和[ a [ b ]]之间的差异给出了什么从上面第一个问题两者之间的关系?

  3. 除了我们不必指定/写入参数名称之外,这种格式在下面的情况下如何有利或适用?

  4.   

    class bytearray(source = default_value1,encoding = default_value2,   errors = default_value3)

1 个答案:

答案 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参数。