python函数中最常见的2个参数 *args,**kwargs

python函数中最常见的2个参数 *args,**kwargs,*args是非关键字参数,用于元组,**kw是关键字参数,用于字典
下面具体来介绍:

*args:关键标志为星号*,名称可以随意,当传入函数中的参数个数未知,且不需要知道参数名称时,使用*args。传入函数中的几个参数组成元组

**kwargs:关键标志为星号**,名称可以随意。当传入函数中的参数个数未知但需要知道参数的名称时,使用**kw。传入函数中的几个参数组成字典。

1、

例子:

def my_func(arg1, arg2, *args, **kwargs):
    print(f"arg1={arg1}")
    print(f"arg2={arg2}")
    print(f"args={args}")
    print(f"kwargs={kwargs}")

my_func(1, 2, 3, 4, 5, foo='bar', baz=10)

当你调用这个函数时,arg1arg2是必需的参数,而*args**kwargs分别是非关键字参数和关键字参数,可以传递任意数量的值:

结果:

C:\Users\Thinkpad\AppData\Local\Programs\Python\Python39\python.exe C:/Users/Thinkpad/Desktop/0301/shiyan.py 
arg1=1
arg2=2
args=(3, 4, 5)
kwargs={'foo': 'bar', 'baz': 10}

Process finished with exit code 0

其中,arg1arg2接收了12这两个必需参数;args接收了传递给函数的剩余非关键字参数(3, 4, 5)kwargs接收了关键字参数foo='bar'baz=10,它们作为字典类型传递给函数。

2、传参形式

def my_func(arg1, arg2, *args, **kwargs):
    print(f"arg1={arg1}")
    print(f"arg2={arg2}")
    print(f"args={args}")
    print(args[0])
    '''   更改元组值

创建元组后,您将无法更改其值。元组是不可变的,或者也称为恒定的。
但是有一种解决方法。您可以将元组转换为列表,更改列表,然后将列表转换回元组。'''
    lst = list(args)
    lst[0]=9

    args = tuple(lst)
    print("修改后",args[0])
    print(f"kwargs={kwargs}")
    print(kwargs["foo"])
    kwargs["foo"]="zj"

# 定义一个包含非关键字参数和关键字参数的元组和字典
args_tuple = (3, 4, 5)
kwargs_dict = {'foo': 'bar', 'baz': 10}

# 使用*和**对元组和字典进行拆包传递
my_func(1, 2, *args_tuple, **kwargs_dict)
print(args_tuple)
print(kwargs_dict)

结果:

C:\Users\Thinkpad\AppData\Local\Programs\Python\Python39\python.exe C:/Users/Thinkpad/Desktop/0301/shiyan.py 
arg1=1
arg2=2
args=(3, 4, 5)
3
修改后 9
kwargs={'foo': 'bar', 'baz': 10}
bar
(3, 4, 5)
{'foo': 'bar', 'baz': 10}

Process finished with exit code 0

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值