python如何用方括号定义带可选参数的函数?

python how to define function with optional parameters by square brackets?

我经常会找到一些定义为open(name[, mode[, buffering]])的函数,我知道它意味着可选参数。python文档说它是模块级函数。当我试图用这种样式定义函数时,它总是失败的。例如江户十一〔一〕号不工作。有人能告诉我模块级是什么意思吗?我如何用这种样式定义函数?


"1。如果我们可以用这种方式定义可选参数(目前没有)"

方括号符号不是python语法,它是backus naur形式-它只是一个文档标准。

  • 模块级函数是模块中定义的函数(包括__main__)—这与类(方法)中定义的函数不同。

  • 到目前为止,我还没有得到预期的答案。最初,当我看到open(name[, mode[, buffering]])的这种表达方式时,我真的想知道这是什么意思。这显然意味着可选参数。在那一刻,我发现用可选参数定义函数可能是一种不同的方法(不同于像f(a,b,c=None,d='balabala')),但不仅告诉我们它是可选参数。这篇文章的好处可以帮助我们使用可选参数,但没有默认值,所以我认为这是一种更清晰、更简单的定义可选参数的方法。我真正想知道的是两件事:1.如果我们可以用这种方式定义可选参数(目前没有)2。如果有人能解释模块级功能意味着什么,那就太好了。我非常感谢以上的回答和评论!谢谢


    这就是你要找的吗?

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    >>> def abc(a=None,b=None):
    ...  if a is not None: print a
    ...  if b is not None: print b
    ...
    >>> abc("a")
    a
    >>> abc("a","b")
    a
    b
    >>> abc()
    >>>