python学习感悟——可变参数,关键字参数

本人属于学语言只学基础操作,就是能用就行的程度,比较粗暴,最近准备重新认识一下python,这个就是自己的一个认识和感悟吧,

学习博客指路:函数的参数 - 廖雪峰的官方网站

可变参数:

有多个参数的时候可以使用可变参数,而非列表或tuple,省去构造的时间,使用函数的人用起来也好用。

例:

def adds(nums: [List, tuple]):
    sum = 0
    for i in nums:
        sum += i
    return sum
       

这样写的话,外部用户调到这个函数就需要使用 adds([1,2,3,4])

但若是调用可变参数,调用者只需要使用adds(1,2,3,4)即可

而我们定义函数只需要这样定义

def adds(*nums):
    sum = 0
    for i in nums:
        sum += i
    return sum

如果这个时候调用者已经构造好了一个列表如a =[1,2,3,4],那么使用可变参数的函数时

可以这么调用adds(a[0],a[1],a[2],a[3]), 但这样做不优雅的同时还容易造成问题

可以使用adds(*a),在list或者tuple前加*可以将其变成可变参数传入

关键字参数:.

def func(name, age, **kw):
    print(name)
    print(age)
    print(kw)

这里调用 func(tissue, 18, hobby="tennis"), 输出

tissue

18

{"hobby":"tennis"}

跟上述情况相似,若是调用者已经有一个dict了,例:a = {'hobby':'tennis','speciality':'paint'}

可以使用 func(tissue, 18, **a)

想起来看过很多优秀的python源码,里面都是用的是可变参数以及关键字参数,还是有其道理的,否则参数过多对代码的维护以及代码的可观赏性都是一种伤害。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值