前言:
今天咱们对“python输入不确定个参数”大约比较重视,看官们都想要学习一些“python输入不确定个参数”的相关内容。那么小编在网上汇集了一些有关“python输入不确定个参数””的相关文章,希望你们能喜欢,朋友们一起来学习一下吧!欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是《在Python函数中的默认参数详解》。本文的主要内容有:默认参数的概念和默认参数的示例、默认参数不能设置可变对象。
在调用函数时如果不指定某个参数,Python 解释器会抛出异常。为了解决这个问题,Python 允许为参数设置默认值。
1、默认参数的概念
默认参数也叫参数的默认值,即在定义函数时,直接指定形式参数的默认值。这样,当没有传入参数时,则直接使用定义函数时设置的默认值。
定义带有默认值参数的函数的语法格式如下:
def functionname(...,[parameter1 = defaultvalue1]): [functionbody]
其中,相关参数说明如下:
functionname:函数名称,在调用函数时使用;
parameter1 = defaultvalue1:可选参数,用于指定向函数中传递的参数,并且为该参数设置默认值为defaultvalue1;
functionbody:可选参数,用于指定函数体,即该函数被调用后,要执行的功能代码。
当然,上面的内容也可以使用中文说明:
def 函数名(...,形参名,形参名=默认值): 代码块
站长在线特别提醒:在使用此格式定义函数时,指定有默认值的形式参数必须在所有没默认值参数的最后,否则会产生语法错误。
2、默认参数的示例
例如:定义一个同学的语文,数学,英语的成绩,并且输出他的成绩,
#可写函数说明def chengji(shuxue=98,yingyu=90,yuwen=92): "打印任何传入的字符串" print ("语文: ",yuwen) print ("数学: ",shuxue) print ("英语: ",yingyu) return #调用chengji函数chengji(shuxue=100,yingyu=100,yuwen=100)print("----------")chengji(shuxue=80,yingyu=80)
运行结果如下:
语文: 100数学: 100英语: 100----------语文: 92数学: 80英语: 80>>>
从上面的运行结果可以看出,我们对上面的成绩定义了两次,第一次全部定义为100分,结果显示为100分,第二次定义了两个80分的,有一个没有定义,就调用了默认参数了。
Pyhton 中,可以使用“函数名.__defaults__”查看函数的默认值参数的当前值,其返回值是一个元组。以本节中的 chengji() 函数为例,在最后一行代码后面添加如下代码:
print(chengji.__defaults__)
运行以后,结果为:
语文: 100数学: 100英语: 100----------语文: 92数学: 80英语: 80(98, 90, 92)>>>3、默认参数不能设置可变对象
使用可变对象作为函数参数的默认值时,多次调用可能会导致意料之外的情况。例如,编写一个名称为demo()的函数,并为其设置一个带默认值的参数,代码如下:
def demo(a=[]): # 定义函数并为参数a指定默认值 print("a的值: ",a) a.append(1)
调用demo()函数,代码如下:
def demo(a=[]): # 定义函数并为参数a指定默认值 print("a的值: ",a) a.append(1)demo() # 调用demo()函数
将显示以下结果:
a的值: []
连续两次调用demo()函数,并且都不指定实际参数,代码如下:
def demo(a=[]): # 定义函数并为参数a指定默认值 print("a的值: ",a) a.append(1)demo() # 调用demo()函数demo() # 调用demo()函数
将显示以下结果:
a的值: []a的值: [1]>>>
从上面的结果看,这显然不是我们想要的结果。为了防止出现这种情况,最好使用None作为可变对象的默认值,这时还需要加上必要的检查代码。修改后的代码如下:
def demo(a=None): if a==None: a=[] print("a的值: ",a) a.append(1)demo() demo()
运行结果如下:
a的值: []a的值: []>>>
上面的问题,就告诉我们:定义函数时,为形式参数设置默认值要牢记一点:默认参数必须指向不可变对象。
到此为止,站长在线讲解的《在Python函数中的默认参数详解》中的默认参数的概念和默认参数的示例,都讲解完毕了。有不懂的可以给我留言哦!
在下一个知识点,站长在线就来讲解《在Python函数中的可变参数》。关注站长在线,学习Python不迷路!欢迎你对站长在线进行关注,评论,点赞,分享、转发!
标签: #python输入不确定个参数