0
点赞
收藏
分享

微信扫一扫

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

君心浅语 2022-02-21 阅读 74
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 条评论