Python自学之函数参数总结

Python中定义的函数可以使用必选参数、默认参数、可变参数、命名关键字参数和关键字参数,使用的顺序也服从上述排列。

1-必选参数

def func(x):
    print(x)

2-默认参数

def func(x,n = 2):
    print(x,n)

调用时:


>>>func(20)
20 2
>>>func(20,5)
20 5

3-可变参数

def func(*value):
    print(value)

可变参数,顾名思义就是可以传入0-任意个参数,也可以传入一个list或tuple
调用:

>>>func(1,2,3)
1 2 3
>>>b = [1,2,3]
>>>func(*b)
1 2 3

4-关键字参数
关键字参数与可变参数可以说大部分一样,不同的是可变参数会将传入的参数组装成list,而关键字参数会将传入的参数组装成dict

def func(n,**dict):
    print(n,dict)

调用

>>>func(12,x='1',y='2')
12 {'x':'1',y':'2'}
>>>dic = {'x':'1','y':'2'}
>>>func(12,**dic)
12 {'x':'1',y':'2'}

5-命名关键字参数
命名关键字参数的作用是限制传入的关键字参数,也就是说你只能输入特殊固定的键值对,如果函数定义中有可变参数,那么命名关键字参数紧跟其后,如果没有可变参数,需要增加一个 ,*,来区分位置参数和关键字参数

def func(x,y,*,height,width):   #限制只传入key = height和width
    print(x,y,height,width)

Tips
1-默认参数必须指向不变对象;(list是可变对象)
原因:函数在定义的时候默认参数的值就已经是个占用内存的变量了,函数被调用时,如果默认参数是可变的list,那么在每次调用函数之后默认参数的值都会发生改变。
Eg.

def add_list(l =[]):    #传入的默认参数是可变参数list
    l.append('end')     
    print(l)

可以这样修改:

def add_list(l = None):     #将默认参数置为None不可变参数
    if l is None:           #如果选择使用默认参数,就置为list
        l = []
    l.append('end')
    print(l)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值