点击上方“Python小白集训营”,选“星标”公众号
重磅干货,第一时间送达
图 | Pexels
日期 | 2021.1.6
今天我们再来说说函数传递中的用法,算是一个进阶技巧吧,很多小伙伴只知其意,却搞不明白它长什么样子,以及为啥长这个样子。
而Python里面对函数参数传递分为以下几种:
位置参数
默认参数
关键字参数
可变长度参数
那我先从最简单的给大家说起:
1.位置参数
python里最常见的函数,是那种带位置参数的函数,和我们其它编程语言的普通函数一致,所有函数在传递过程中,都是按照位置来进行传递的,打个比方:
把Hi Python赋给message,2赋给times
2.默认参数
我们再调用函数的时候都会传入值,但是有的时候我真的希望一劳永逸,输入了这个值它就是我的,即便在某个时刻,我不在python中输入,它也能给我一个值,这就用到了默认参数的特性,让我们来看个例子:
def printMessage(message,times=2):
print (message*times)
printMessage('Hi Python:')#没有输入times的值
>>Hi Python:Hi Python:
看,如果我们没有输入times的值,python就会自动帮助我们,默认输入times的值2。
3.关键字参数
在调用函数的时候,如果传递的参数过于僵硬,就不能适配变量名进行匹配,所以传递往往具有一定的灵活性。
先看一个打印分数的函数,这个函数设计的比较死板,看python是如何解决的,然后引出我们的话题:
def printScore(msg,values):
if not values:
print msg
else:
values_str=', '.join(str(x)for x in values)
print ('{},{}'.format(msg,values_str))
printScore('My scores are',[100,90])
>>My scores are,100, 90
printScore('My scores are',[])#那怕你不想输入分数,也必须输入一个空的列表
>>My scores are
大家仔细看这个打印log的函数,它一个固定参数个数的函数,这个函数接受两个参数:一个message,一个values。
准确的说是必须要接受两个参数,这样就很死板,比如我只需要打印一个消息,但是调用的人必须要上面一样,哪怕你传入的是一个空列表。
这种写法既麻烦,又显的有点乱,有没有办法把第二个参数完全省略掉. 有的,python设计者设计了可变函数参数功能,也就是我们的第4种方式。
以上就是今日分享的函数及参数的传递技巧,如果我写的内容对大家有所帮助,还请大家花1秒时间点个在看,让更多的人知道你在为自己的未来,拼尽全力。
祝你学有所成。
-END-
长按关注,领取更多干货