微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python函数默认参数如何设置

这篇文章主要介绍“Python函数认参数如何设置”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python函数认参数如何设置”文章能帮助大家解决问题。

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

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

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

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

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

#str1没有认参数,str2有认参数
def dis_str(str1,str2 = "http://c.biancheng.net/python/"):
print("str1:",str1)
print("str2:",str2)
 
dis_str("http://c.biancheng.net/shell/")
dis_str("http://c.biancheng.net/java/","http://c.biancheng.net/golang/")

运行结果为:

str1: http://c.biancheng.net/shell/
str2: http://c.biancheng.net/python/
str1: http://c.biancheng.net/java/
str2: http://c.biancheng.net/golang/

上面程序中,dis_str() 函数有 2 个参数,其中第 2 个设有认参数。这意味着,在调用 dis_str() 函数时,我们可以仅传入 1 个参数,此时该参数会传给 str1 参数,而 str2 会使用认的参数,如程序中第 6 行代码所示。

当然在调用 dis_str() 函数时,也可以给所有的参数传值(如第 7 行代码所示),这时即便 str2 有认值,它也会优先使用传递给它的新值。
同时,结合关键字参数,以下 3 种调用 dis_str() 函数的方式也是可以的:

dis_str(str1 = "http://c.biancheng.net/shell/")
dis_str("http://c.biancheng.net/java/",str2 = "http://c.biancheng.net/golang/")
dis_str(str1 = "http://c.biancheng.net/java/",str2 = "http://c.biancheng.net/golang/")

再次强调,当定义一个认值参数的函数时,有认值的参数必须位于所有没认值参数的后面。因此,下面例子中定义的函数是不正确的:

#语法错误
def dis_str(str1="http://c.biancheng.net/python/",str2,str3):
pass

显然,str1 设有认值,而 str2 和 str3 没有认值,因此 str1 必须位于 str2 和 str3 之后。

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

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

print(dis_str.__defaults__)

程序执行结果为:

('http://c.biancheng.net/python/',)

关于“Python函数认参数如何设置”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程之家行业资讯频道,小编每天都会为大家更新不同的知识点。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐