Python中def()->int奇怪的语法和*args与**args

  1. 看源码有一些奇奇怪怪的写法,顺便把以前用的整理整理
  2. 首先解释*args, **kwargs这两个,先看个测试代码
def func(*args, **kwargs):
    print(args)
    print(kwargs)

func(1,2,3,4, a = 5, b = 6, c = 7)

输出结果如图:
在这里插入图片描述
解释:*args传入多个值,这些值的特点是被包装成一个元组(tuple),如打印的(1, 2, 3, 4),**kwargs则传入多个值,这些值的特点是被包装成一个字典(dict),如打印的{‘a’: 5, ‘b’: 6, ‘c’: 7}

  1. 函数的解释def (): -> int

先看代码:

def func(*args: int, **kwargs: str) -> float:
    print(args)
    print(kwargs)
    return "final"

a = func(1, 2, 3, 4, a=5, b=6, c=7)
print(a)

输出结果如图:
在这里插入图片描述
解释:参数中的*args: int,*args同上,但是: int表示函数这个参数的解释,告诉后面的使用者,使用该函数传入的值应该为整形数据,但是不会进行参数校验,只是做个提示的功能而已。**kwargs: str同理。
在后面 -> float则表示该函数的返回值为浮点数类型,同样只是做个提示,而不校验结果,如输出为final

  1. 最后,这种结果常常在短小精悍的代码中出现,剩下靠自己发挥啦。
  • 16
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

l8947943

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值