【python】函数调用的参数规则、位置参数、关键参数、任意参数与解包

Python 的函数在声明参数时大概有下面 四 种形式:

  • 不带默认值的:def func(a): pass ;a就是不带默认值的参数,也叫位置参数
  • 带有默认值的:def func(a, b=1): pass ;b是带默认值的参数 ,也叫关键参数
  • 任意位置参数:def func(a, b=1, *c): pass ;c是任意位置参数
  • 任意键值参数:def func(a, b=1, *c, **d): pass;d是任意键值对参数,一般传入字典包

在调用函数时,有两种情况:

  • 没有关键词的参数:func(“G”, 20)
  • 带有关键词的参数:func(a=“G”, b=20)(其中带有关键词调用可以不考虑顺序:func(b=20, a=“G”)

1、当不带默认值的参数和带默认值的参数混合在一起时,调用该函数时,可以不对带默认值的参数赋值,此时会将带默认值得数值传递下去;如果给参数重新赋值,那么定义的函数的默认值会被重写;

2、当给函数的参数赋值时,一定要遵循顺序:位置参数不能在关键词参数之后出现,初中英语知识此时就会出现上式中语法错误;如果都带上关键词后可以不用考虑该顺序。

因此最保险的做法是全部使用关键参数

任意参数
任意参数可以接受任意数量的参数,其中*a的形式代表任意数量的位置参数**d代表任意数量的关键词参数

在 Python 3.0 中,这里的关键词函数必须明确指明,不能通过位置推断。

**d则代表任意数量的关键词参数

Unpacking
*a、**d可以在函数参数之外使用:

所谓的解包(Unpacking)实际上可以看做是去掉()的元组、列表或者是去掉{}的字典。这一语法也提供了一个更加 Pythonic 地合并字典的方法:

转载于:https://www.cnblogs.com/zhaolide/p/10026253.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值