美文网首页
python 定义带有默认参数的函数

python 定义带有默认参数的函数

作者: 孙广宁 | 来源:发表于2022-05-24 20:00 被阅读0次
    7.5 定义一个函数带有一个或多个参数是可选的并带有默认值
    >>> def m(a,b=30):
    ...     print(a,b)
    ...
    >>> m(5)
    5 30
    >>> m(5,31)
    
    • 如果默认值是可变类型,如数组、元组等,那么可以把None作为默认值
    >>> def m1(a,b=None):
    ...     print(a,b)
    ...
    >>> m1(5)
    5 None
    >>> m1(5,(6,7))
    5 (6, 7)
    >>> m1(5,[6,7])
    5 [6, 7]
    

    *如果不打算提供一个默认值,想让函数自己检测出来,可以用如下方法

    >>> _no_value=object()
    >>> def m2(a,b=_no_value):
    ...     if b is _no_value:
    ...         print("b is no value")
    ...     else:
    ...         print(b)
    ...
    >>> m2(5)
    b is no value
    >>> m2(5,6)
    6
    >>> m2(5,(6,7))
    (6, 7)
    >>> m2(5,[6,7])
    [6, 7]
    >>> m2(5,{6,7})
    {6, 7}
    >>>
    
    • 要注意一下,函数默认参数的作用域,如果按照以下的逻辑定义参数
    >>> x = 30
    >>> def m3(a,b=x):
    ...     print(a,b)
    ...
    >>> m3(5)
    5 30
    >>> x=20
    >>> m3(5)
    5 30
    >>>
    
    • 重新给x赋值,但是并不会影响到函数的默认值b

    相关文章

      网友评论

          本文标题:python 定义带有默认参数的函数

          本文链接:https://www.haomeiwen.com/subject/yicsprtx.html