pytho传参kwargs

Python代码中有很多类似的用法,第一次接触的时候还是有很多疑惑的,为了方便记忆,因此梳理了一下。

# 使用模型进行推理
with torch.no_grad():
    outputs = model(**encoded_texts)

对于一个dict类型的变量**encoded_texts是取出value的值,而不考虑键。

def test_func(**kwargs):
    a = kwargs["a"]
    b = kwargs["b"]
    print(a)  # [1, 2, 3]
    print(b)  # hello test


dct = {"a": [1, 2, 3], "b": "hello test"}
test_func(**dct)

函数传参的时候简化传参形式,无需指定参数名。

2024-06-17更新
函数传参使用

def func(a, b, c):
    """参数名和**kwargs传参的参数名和个数有关
    顺序可以无关"""
    print(a, b, c)


kwargs = {"a": 1, "b": 2, "c": 3}
func(**kwargs)  # 1 2 3
kwargs2 = {"b": 1, "a": 2, "c": 3}
func(**kwargs2)  # 2 1 3

两个字典合并

# **用于字典合并时,它用于合并多个字典。将一个字典的键值对合并到另一个字典中
# 如果存在相同的键,dct2中的值会覆盖dct1中的值。
dct1 = {"a": 1, "b": 2}
dct2 = {"c": 3, "d": 4}
merged_dict = {**dct1, **dct2}
print(merged_dict)
# {'a': 1, 'b': 2, 'c': 3, 'd': 4}

202406-26 更新

def test_func(**kwargs):

    c = kwargs.pop("c", "deflault value")
    print(c) # deflault value
    b = kwargs.pop("b", None)
    a = kwargs.pop("a", None)
    print(a)  # [1, 2, 3]
    print(b)  # hello test


dct = {"a": [1, 2, 3], "b": "hello test"}
test_func(**dct)
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值