python关键字参数与可变参数

本文介绍了Python中的关键字参数和可变参数。关键字参数允许传递0个或多个未在函数定义中出现的参数,它们在函数内部以字典形式存在。可变参数则允许传入任意数量的参数,它们会覆盖掉前面的特定参数和默认参数。通过示例代码展示了如何使用这两个特性。
摘要由CSDN通过智能技术生成

1.关键字参数

关键字参数可以传入0或者多个参数名的参数,这些参数在函数定义中并没有出现,这些参数在函数内部自动封装集成一个字典(dict),通常来讲关键字参数是放在函数参数列表的最后,通过一个demo代码来看:

def write_msg(id, **kwargs):
    msg = {
        'id': id,
        'name': None,
        'age': None,
        'sex': None,
        'city': None
    }

    for key, val in kwargs.items():
        msg[key] = val

    return msg

**kwargs在函数内部是一个字典,我们可以对这个字典进行迭代,取出函数的键(key)和值(value),对上面的demo测试如下:

 bruce_msg = write_msg(1, name='Bruce', age=26, sex='male', city='guangzhou')
 lily_msg = write_msg(2, name='Lily', age=26, sex='female', city='zhongshan')
 tom_msg = write_msg(2, name='Tom', age=30, sex='male', city='shanghai', post='engineer')
 print(bruce_msg)
 print(lily_msg)
 print(tom_msg)
 none_msg = write_msg(3)
 print(none_msg)

结果:

{'id': 1, 'name': 'Bruce', 'age': 26, 'sex': 'male', 'city': 'guangzhou'}
{'id': 2, 'name': 'Lily', 'age': 26, 'sex': 'female', 'city': 'zhongshan'}
{'id': 2, 'name': 'Tom', 'age': 30, 'sex': 'male', 'city': 'shanghai', 'post': 'engineer'}
{'id': 3, 'name': None, 'age': None, 'sex': None, 'city': None}

2.可变参数

函数的可变参数所传入的内容个数是可以变化的,可以是1个,2个到任意个。使用可变参数可以很好的解决参数灵活变化的问题,单有一点需要注意,可变参数在函数定义时出现在在特定参数和默认参数面前,因为可变参数会覆盖掉这些参数,来看一个demo:

def compute_type(type, *args):
    val = 0
    if type == 'add':
        for arg in args:
            val += arg
        return val
    elif type == 'multi':
        val = 1
        for arg in args:
            val *= arg
        return val
    else:
        print('not support this type compute!')

大行调用compute_type的时候,除了特定参数type,后面传入的参数都会被识别为可变参数,可变参数args亦是一个可迭代的对象,对demo测试如下:

add_num = compute_type('add', 1,2,3,4,5,6,7,8,9,10)
print('add:', add_num)
multi_num = compute_type('multi', 1,2,3,4,5,6,7,8,9)
print('multi:', multi_num)

结果:

add: 55
multi: 362880

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值