函数的参数知识点

函数的参数
在python中函数参数的定义方式有以下4中方式
1、位置参数
在我们在传参的时候,实参传递的顺序按照形参定义的顺序进行传递的传参方式。

def sum_num(num1,num2):
    print(num1+num2)
sum_num(1,2)#1对应num,2对应num2.

2、关键字参数:
我们在传参的时候,以形参等于实参的形式忽略形参定义的顺序进行传参的传参方式。

def sum_num(num1,num2):
    print(num1)
    print(num2)
    print(num1,num2)
sum_num(num2=10,num1=20)#不受位置影响。

位置参数关键字参数混合使用

def sum_num(num1,num2):
    print(num1)
    print(num2)
    print(num1,num2)
sum_num(10, num1=20)#关键字参数在前,位置参数在后,能正常运行,
sum_num(num=10, 20)#否则报错

3、默认参数:
是在我们定义参数时候,我们给形参一个默认值,在我们调用函数的时候,如果不给有默认值的形参传参,会自动采用默认值。当某个值变化小的时候,我们就可以使用默认参数。

def save_userinfo(name,age,gender='男'):
    print('姓名:{},年龄:{},性别:{}'.format(name,age,gender))
save_userinfo('张三',20)
save_userinfo('花',20,gender='女')

4、可变参数(*args, **kwargs):
如果函数中的参数过多,我们定义起来非常的麻烦,调用起来也非常的麻烦,因此python给我们提供了可变参数类型。能处理比当初声明时更多的参数,会将传入的参数变成元组(*args)或者字典(**kwargs)
格式
*变量名,可接受多个位置参数。
(1).元组参数 *args

def func(*args):
    print(args)#(1,2,3,4,5,6)
    print(args[0],args[1])#获取元组中的元素
func(1,2,3,4,5,6)

通过给形参前面添加*使参数变成一个元组,所有传递的参数变成元组的元素
args参数名称可以任意命名,但是一般我们叫他 args。
(2)具有打散序列的功能

tup=(1,2,3,4)
print(*tup)#1 2 3 4
lst=['a','b','c']
print(*lst)#a b c
s1='hello'
print(*s1)#h e l l o

将元组中的123分别给abc参数赋值

def func(a,b,c):
    print(a,b,c)
tup=(1,2,3)
func(*tup)

(3)字典参数 **kwargs
接受多个关键字参数,变量名称可以任意,但是一般使用keargs,所有传递的参数变成字典的键值对,这里传参要求键等于值的形式。
**kwargs结果类型是字典,传递值是以key=value方式传入

def func(**kwarge):
    print(kwarge)
    print(kwarge['name'],kwarge['age'],kwarge['gender'])
func(name='张三',age=10,gender='男')

(4) 具有打散字典的功能**

def func(name,age):
    print(name,age)
dic={'name': '张三', 'age': 10}
func(**dic)#等价于下边根据关键字取参数
func(name='张三',age=10)

(5)创建函数声明参数时的顺序:
位置参数、*args、默认参数、**kwargs

def func(a,*args,b=10,**kwargs):
    print(a)
    print(args)
    print(b)
    print(kwargs)
func('zs','ls',b='23',d=22,c=29)

猜你喜欢

转载自blog.csdn.net/qq_44240254/article/details/85711194