python学习(八):函数参数以及 *args 和 **kwargs

本文深入讲解Python函数的四种参数类型:必选参数、默认参数、可变参数和关键字参数。通过实例演示每种参数的使用场景及组合方式,帮助读者掌握Python函数参数的灵活运用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

首先是最常见的必选参数

def test_defargs(one, two):    # 参数one没有默认值,two的默认值为2
   print('Required argument: ', one)
   print('Optional argument: ', two)

每次我们都要输入两个值,分别赋值给one two。这种参数叫做必选参数。

必选参数在前,默认参数在后。

 

默认参数

def test_defargs(one, two=2):    # 参数one没有默认值,two的默认值为2
   print('Required argument: ', one)
   print('Optional argument: ', two)

可以看到,每次我们都要给one赋值,two的话,可以赋值也可以不赋值,不赋值会自动给two赋2。

 

可变参数

顾名思义,可变参数就是传入的参数个数是可变的,可以是1个、2个到任意个,还可以是0个。

def calc(*args):
    sum = 0
    for n in args:
        sum = sum + n * n
    return sum

使用时就可以输入随意数量的参数了:

>>> calc(1, 2)
5

如果我有一个列表,想要把这个列表作为参数输入:
 

>>> nums = [1, 2, 3]
>>> calc(*nums)
14

这样就可以把列表作为可变参数传进去了。

 

关键字参数

可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple。而关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。(参数名为key,参数为value)

 

比如:

def person(name, age, **kw):
    print 'name:', name, 'age:', age, 'other:', kw

 

使用的时候,

>>> person('Adam', 45, gender='M', job='Engineer')
name: Adam age: 45 other: {'gender': 'M', 'job': 'Engineer'}

得到的结果就是:

name: Adam age: 45 other: {'gender': 'M', 'job': 'Engineer'}

在内部组成了一个kw列表。

那么如果我想给kw之间传入一个列表怎么办?就不需要再到函数内部去重组,我直接给。

答案是与此前传入*args类似。

kw={gender:'M', job:'Engineer'}
person('Adam', 45, **kw)

 

各种参数的组合使用:

在Python中定义函数,可以用必选参数、默认参数、可变参数和关键字参数,这4种参数都可以一起使用,或者只用其中某些,但是请注意,参数定义的顺序必须是:必选参数、默认参数、可变参数和关键字参数。

 

比如:

def func(a, b, c=0, *args, **kw):
    print 'a =', a, 'b =', b, 'c =', c, 'args =', args, 'kw =', kw

 

>>> func(1, 2, 3, 'a', 'b', x=99)
a = 1 b = 2 c = 3 args = ('a', 'b') kw = {'x': 99}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值