开发者社区> 问答> 正文

定义有默认参数的函数

你想定义一个函数或者方法,它的一个或多个参数是可选的并且有一个默认值。

展开
收起
哦哦喔 2020-04-17 13:50:17 814 0
1 条回答
写回答
取消 提交回答
  • 定义一个有可选参数的函数是非常简单的,直接在函数定义中给参数指定一个默认值,并放到参数列表最后就行了。例如:
    
    def spam(a, b=42):
        print(a, b)
    
    spam(1) # Ok. a=1, b=42
    spam(1, 2) # Ok. a=1, b=2
    如果默认参数是一个可修改的容器比如一个列表、集合或者字典,可以使用None作为默认值,就像下面这样:
    
    # Using a list as a default value
    def spam(a, b=None):
        if b is None:
            b = []
        ...
    如果你并不想提供一个默认值,而是想仅仅测试下某个默认参数是不是有传递进来,可以像下面这样写:
    
    _no_value = object()
    
    def spam(a, b=_no_value):
        if b is _no_value:
            print('No b value supplied')
        ...
    我们测试下这个函数:
    
    >>> spam(1)
    No b value supplied
    >>> spam(1, 2) # b = 2
    >>> spam(1, None) # b = None
    >>>
    仔细观察可以发现到传递一个None值和不传值两种情况是有差别的。
    
    2020-04-17 13:50:28
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载