Python函数传参位置关系总结
一般传参的函数
def print_Info(name,age): print('Name: %s' % name) print('Age: %s'%age) print_Info("ljj",15)
带有默认值的传参函数,有默认值的放在后面
def print_Info(name,age=15): print('Name: %s' % name) print('Age: %s'%age) print_Info("ljj",15)
数量可变参数
def add(*a): i=0 for temp in a: i+=temp print(i) add(1,2,3,4,5,6,7,8,9,10)
*a是以元组的形式展示的
变量名和变量值可变的函数参数
def print_info(name,age,sex,**kwargs): print('Name: %s' % name) print('Age: %s' % age) print('Sex: %s' % sex) for i in kwargs: print('%s:%s'%(i,kwargs[i])) print_info('ljj',18,'female',job='IT',hobby='girls',height=188)
**kwargs以字典的形式展示的
可变长度的和变量名和变量值可变的函数参数组合函数
def f(*args,**kwargs): for temp in args: print(temp) for i in kwargs: print('%s:%s' % (i, kwargs[i])) f(1,2,3,4,5,'1212',[1,2,5],name='alvin',age=23)
各种参数形式的组合
def func(name,age=22,*args,**kwargs): print('Name: %s' % name) print('Age: %s' % age) for temp in args: print(temp) for i in kwargs: print('%s:%s' % (i, kwargs[i])) func('lj',21,3,4,5,'1212',[1,2,5],name1='alvin',age1=23)
总结
1,如果有默认参数,放在左边,默认参数
2,关于不定长参数的位置:*args放在左边,**kwargs放在右边
优先级顺序为:一般函数参数>有默认值的函数参数>可变长度的函数参数>变量值可变的函数参数