python什么是关键字参数_Python 函数的关键字参数和位置参数

目前我们python学习过程中用到的参数都是位置参数,显然参数的位置是很重要的。本文我们再来讲一种关键参数,它可以不按照位置传入参数,在大规模的程序中这个关键字参数会比位置参数更有用。关键字参数和位置参数使用方法有什么不同?我们往下看。

位置参数

先观察下面两个函数,看看什么是位置参数:

>>>def a1(x,y,z):

>>> return x,y,z

>>>print a1(1,2,3)

(1,2,3)

>>>def a2(x,y,z):

>>> return x,z,y

>>>print a1(1,2,3)

(1,3,2)

两个函数在定义时的参数名一样,调用时传入的参数也一样,为什么结果不同呢?问题就在return返回的参数位置上。定义函数时参数名的位置,与调用时所传参数位置是相对应的,也就是这两个函数中x=1,y=2,z=3,至于输出结果是什么则由return中的顺序来决定。想一下,如果调用a2函数时传入的参数是(1,3,2)会得到什么样的结果?

位置参数还需要注意:定义函数时写了几个位置参数,在调用传参时就要传入同样数量的参数。return返回值有很多个时,在输出时会集合为元组展现。

关键字参数

关键字参数有什么用?在程序比较繁琐的时候,参数顺序是很难能记住的,为了让程序简单不出错,会为参数起一个名字,这就是关键字参数的作用。好比下面这个函数:

>>>def x(name,Profession):

>>> return '%s is %s' %(name,Profession)

>>>print x(name='Amy',Profession='Student')

Amy is Student

>>>print x(Profession='Student',name='Amy')

Amy is Student

第二次调用x函数时,虽然传参数时把参数位置调换了,但结果还是没有变。这是因为把参数名与值绑定在一起,使用参数名提供的参数叫做关键字参数。

关键字参数还有一个特殊的作用,就是可以在定义函数时设置关键字参数默认值:

>>>def info(name='Amy',Profession='Student'):

>>> return '%s is %s' %(name,Profession)

>>>print info()

Amy is Student

在函数设置了参数默认值是,调用的时候可以不传入参数了。当然你也可在传入一个或是所有的新参数:

>>>print info('lili')

lili is Student

>>>print info('lili','Teacher')

lili is Teacher

如果只想提供职业Profession参数,而名字用默认值,应该怎么操作呢?想深入学习的同学们可以关注玩蛇网python学习视频哦。

浏览这篇文章的用户,正在关注:

python 函数返回值

玩蛇网文章,转载请注明出处和文章网址:https://www.iplaypy.com/jinjie/jj130.html

相关文章 Recommend

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我们来举一个简单的例子来讲解Python中的关键字参数位置参数。 假设我们要定义一个函数,用来计算矩形面积。这个函数需要接收两个参数,分别是矩形的长和宽。我们可以这样定义这个函数: ```python def area(length, width): return length * width ``` 这里的`length`和`width`是位置参数,因为它们的传参是按照位置顺序来进行匹配的。例如,如果我们要计算一个长为3,宽为4的矩形面积,我们可以这样调用这个函数: ```python result = area(3, 4) print(result) # 12 ``` 这里的`3`和`4`就是位置参数,因为它们的传参顺序与函数定义中的顺序是一致的。 除了位置参数外,Python还支持关键字参数关键字参数是指在传递参数时,通过指定参数名来进行匹配的参数。例如,我们可以这样调用上面的函数: ```python result = area(length=3, width=4) print(result) # 12 ``` 这里的`length=3`和`width=4`就是关键字参数,因为它们是通过参数名来进行匹配的,而不是通过位置顺序。在使用关键字参数时,参数的顺序是可以任意调整的,例如: ```python result = area(width=4, length=3) print(result) # 12 ``` 在这个例子中,参数的顺序与函数定义中的顺序是不一致的,但是 Python 会根据参数名来进行匹配,从而得到正确的结果。 总之,Python中的关键字参数位置参数都是用于传递函数参数的方式,二者有不同的使用场景和优缺点,需要根据具体情况来选择使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值