日期传递过程_函数的参数传递,竟还有这个小技巧

点击上方“Python小白集训营”,选“星标”公众号

重磅干货,第一时间送达

e0bb3b5fbbd297f2d5bacb8afd8ba6d9.png

图 | Pexels

日期 | 2021.1.6

今天我们再来说说函数传递中的用法,算是一个进阶技巧吧,很多小伙伴只知其意,却搞不明白它长什么样子,以及为啥长这个样子。

而Python里面对函数参数传递分为以下几种:

  • 位置参数

  • 默认参数

  • 关键字参数

  • 可变长度参数

那我先从最简单的给大家说起:

1.位置参数

python里最常见的函数,是那种带位置参数的函数,和我们其它编程语言的普通函数一致,所有函数在传递过程中,都是按照位置来进行传递的,打个比方:

ffe542456cd38e920f051ddfe22baa88.png

把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-

8e65c8343c201692f19a8f8dd2954530.png

长按关注,领取更多干货

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值