您的当前位置:首页正文

python的参数详解

2024-11-23 来源:个人技术集锦

参数类别

实参:实际上的参数
形参:形式上的参数

实参类型

1、位置实参

定义:调用的时候,需要根据位置传递实际参数

如图,Lion / Dog占了两个位置,期望是传递实参建议按照这个顺序,不然,即时能够接受,也不能正确的处理。(Lion的名字跟Dog的名字,因为传递错误,将导致不能正确识别)

2、关键字实参

定义:调用的时候,需要指定形参名称

3、默认值实参

定义:在函数中,直接赋值给参数

形参类型

形参类型分为非关键字形参*args, 关键字形参**kwargs,先上代码体验一下,:

def func(*args, **kwargs):
    print("-------------------------")
    print('args is {}'.format(args))
    print('kwarg is {}'.format(kwargs))
    try:
        print('firstArgs is {}'.format(args[0]))
        print('firstKwarg is {}'.format(kwargs["a"]))
    except:
        pass

if __name__ == "__main__":

    func(1, 2) # 元组
    func(a=1, b=2, c=3, d=4) # 字典
    func(1, 2, a=1, b=2) # 元组+字典

如上,我们了解了非关键字形参*args, 关键字形参**kwargs的用法。
非关键字形参:用于接收不含关键字的输入数据(如:1,2,3),会以元组的形式进入函数;
非关键字形参:用于接收含有关键字的输入数据(如:key=1中的key),会以字典的形式进入函数;

注意事项:
1、*args, **kwargs可单独存在
2、*args, **kwargs同时存在时,函数定义的形参,*args形参必须在前
3、*args, **kwargs同时存在时,传递实参的顺序,*args实参必须在前
4、取值方式:
*args可通过列表取值方式,如:args[0]
**kwargs可通过字典取值方式,如:kwargs[“key”]
5、参数扩展:可以跟普通形参一起使用,如:func(a,b,c=“name”,*args, **kwargs)

显示全文