本人属于学语言只学基础操作,就是能用就行的程度,比较粗暴,最近准备重新认识一下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源码,里面都是用的是可变参数以及关键字参数,还是有其道理的,否则参数过多对代码的维护以及代码的可观赏性都是一种伤害。