欢迎来到赛兔子家园

Python函数默认参数

 我们知道,在调用函数时如果不指定某个参数,Python 解释器会抛出异常。为了解决这个问题,Python 允许为参数设置默认值,即在定义函数时,直接给形式参数指定一个默认值。这样的话,即便调用函数时没有给拥有默认值的形参传递参数,该参数可以直接使用定义函数时设置的默认值。

Python 定义带有默认值参数的函数,其语法格式如下:

def 函数名(...,形参名,形参名=默认值):
    代码块

注意,在使用此格式定义函数时,指定有默认值的形式参数必须在所有没默认值参数的最后,否则会产生语法错误。

下面程序演示了如何定义和调用有默认参数的函数:

#str1没有默认参数,str2有默认参数
def demo(str1,str2 ="https://www.cnblogs.com/qingchengzi"):
    print("str1:",str1)
    print("str2:",str2)
demo("赛兔子")# 传入1个参数给str1,str2使用默认参数
demo("赛兔子","https://www.python.org/") # 传入2个参数,优先使用传入参数

# 运行结果
# str1: 赛兔子
# str2: https://www.cnblogs.com/qingchengzi
# str1: 赛兔子
# str2: https://www.python.org/

上面程序中,demo() 函数有 2 个参数,其中第 2 个设有默认参数。这意味着,在调用demo() 函数时,我们可以仅传入 1 个参数,此时该参数会传给 str1 参数,而 str2 会使用默认的参数,如程序中第 6 行代码所示。
当然在调用demo() 函数时,也可以给所有的参数传值,这时即便 str2 有默认值,它也会优先使用传递给它的新值。

同时,结合关键字参数,以下 3 种调用demo() 函数的方式也是可以的:

demo(str1="赛兔子")
demo("赛兔子",str2="https://www.python.org/") 
demo(str1="赛兔子",str2="https://www.python.org/")

对于自己自定义的函数,可以轻易知道哪个参数有默认值,但如果使用 Python 提供的内置函数,又或者其它第三方提供的函数,怎么知道哪些参数有默认值呢?

Pyhton 中,可以使用“函数名.__defaults__”查看函数的默认值参数的当前值,其返回值是一个元组。以本节中的demo() 函数为例,在其基础上,执行如下代码:

print(demo.__defaults__)

程序运行结果:

('https://www.cnblogs.com/qingchengzi',)

 

posted on 2024-03-12 09:42  赛兔子  阅读(4)  评论(0编辑  收藏  举报

导航