python基础知识_函数参数带星*

python函数参数的传递

函数参数的使用需要关注两点:

  1. 函数参数是如何定义的;
  2. 在调用函数的过程中参数是如何解析的。

python中函数的定义方式

方式1:F(arg1, arg2,……)

  • 形参个数和实参个数相等;

  • 顺序需要相同。

方式2:F(arg1, arg2=value2, ……)

给参数提供了默认值;如果调用函数的时候给arg2传递了值,就用传递过来的值;如果调用时没有给arg2传递参数,那函数执行过程中就使用默认的value2。

  • 形参个数和实参个数相等;

  • 顺序需要相同。

*方式3:F(arg1)

  • 加了*表示传递的实参数量不确定;

  • 传递过来后,在函数内部以元组的形式存储。

**方式4:F(arg1)

  • 加了**表示传递过来的实参数量不确定;
  • 传递过来后,在函数内部以字典的形式存储。

参数解析

解析顺序:方式1 > 方式2 > 方式3 > 方式4

实例:

def fun(arg1, arg2=5, *arg3, **arg4):
    return arg1, arg2, arg3, arg4


if __name__ == '__main__':
    print("第一次执行函数:", fun(1))
    print("第二次执行函数:", fun(1, 2))
    print("第三次执行函数:", fun(1, 2, 6, 7))
    print("第二次执行函数:", fun(1, 2, 6, 7, a=1))
    
>>>
第一次执行函数: (1, 5, (), {})
第二次执行函数: (1, 2, (), {})
第三次执行函数: (1, 2, (6, 7), {})
第二次执行函数: (1, 2, (6, 7), {'a': 1})

注意事项

  1. 没有默认值的形参需要放在有默认值的形参前面

    def fun(arg1, arg2=5)   # 正确的顺序
    def fun(arg2=5, arg1)   # 错误的顺序
    
  2. 不确定个数的形参(*arg、**arg)需要放在确定最后

    def fun(arg1, *arg2)  # 正确的顺序
    def fun(*arg1, arg2)  # 错误的顺序
    def fun(*arg1, arg2=5)  # 错误的顺序
    

参考链接

https://www.cnblogs.com/smiler/archive/2010/08/02/1790132.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值