python 函数参数

1位置参数

调用函数时根据函数定义的参数位置来传递参数。

def fun(a,b):
print('a: ','b: ',b)
>>fun(1,2)
a: 1 b: 2

2关键字参数

用于函数调用,通过“键-值”形式加以指定。可以让函数更加清晰、容易使用,同时也清除了参数的顺序需求

def fun(a,b):
    print('a: ',a,'b: ',b)

>>fun(a=1,b=2)
>>fun(b=2,a=1)
a:  1 b:  2

def fun(a,b):
    print('a: ',a,'b: ',b)

>>fun(b = 2,1)
SyntaxError: positional argument follows keyword argument

注意:有位置参数时,位置参数必须在关键字参数的前面,但关键字参数之间不存在先后顺序的

3默认值参数

指的是在函数定义时给参数赋值

def fun(a,b=2):
    print('a: ',a,'b: ',b)
>>fun(1)
a:  1 b:  2
def fun(a=1,b):
    print('a: ',a,'b: ',b)
>>fun(2)
SyntaxError: non-default argument follows default argument>

注意:默认参数必须在位置参数之后

4命名关键字参数

定义时出现在一个*号之后的参数,调用时必须以关键字调用

def fun(a,*,b):
    print('a: ',a,'b: ',b)
>>fun(1,b=4)
a:  2 b:  4

def fun(a,*,b=2):
    print('a: ',a,'b: ',b)
>>fun(1,b=4)
a:  2 b:  4

def fun(a,*,b=2):
    print('a: ',a,'b: ',b)
>>fun(1,4)
fun() takes 1 positional argument but 2 were given 
def fun(*a,b):
    print('a: ',a,'b: ',b)
>>fun(2,4,b=3)
a:  (2, 4) b:  3
def fun(*a,b):
    print('a: ',a,'b: ',b)
>>fun(2,4,3)
fun() missing 1 required keyword-only argument: 'b'

5可变参数

def fun(*a): 
    print(type(a))
    print('a: ',a)  
>>fun(8,9)
<class 'tuple'>
 (8, 9)
 >>fun()
<class 'tuple'>
()

def fun(**a):
    print(type(a))
    print('a: ',a)
>>fun(a=1,b=2)
<class 'dict'>
a:  {'a': 1, 'b': 2}
>>fun()
<class 'dict'>
{}
def fun(a,b):
    print('a: ',a,'b: ',b)
l = [1,2]
fun(*l) 
a: 1 b: 2

def fun(a,b):
    print('a: ',a,'b: ',b)
l = {'c':1,'d':2}
fun(*l) 
a: c b: d

def fun(a,b):
    print('a: ',a,'b: ',b)
l = {'a':1,'b':2}
fun(**l) 
a:  1 b:  2

参数组合
定义时:顺序必须是:位置参数、默认参数、*args, 命名关键字参数, **kwargs。
调用时:同上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值