函数的参数类型不定长参数(*args/**kwargs)

函数的参数类型不定长参数


不定长参数也叫可变参数。用于不确定调用的时候会传递多少个参数(不传参也可以)的场景。此时,可用 包裹(packing)位置参数,或者 包裹关键字参数,来进行参数传递,会显得非常方便。

不定长元组参数

def user_info(*args):
    # print(args)  # 元组类型数据,对传递参数有顺序要求
    print(f'我的名字{args[0]},今年{args[1]}岁了,住在{args[2]}')

# 调用函数,传递参数
user_info('Tom', 23, '美国纽约')

不定长关键字参数

def user_info(**kwargs):
    # print(kwargs)  # 字典类型数据,对传递参数没有顺序要求,格式要求key = value值
    print(f'我的名字{kwargs["name"]},今年{kwargs["age"]}岁了,住在{kwargs["address"]}')

# 调用函数,传递参数
user_info(name='Tom', address='美国纽约', age=23)

栗子

def func(*args, **kwargs):
    print(args)
    print(kwargs)


# 定义一个元组(也可以是列表)
tuple1 = (10, 20, 30)
# 定义一个字典
dict1 = {'first': 40, 'second': 50, 'third': 60}
# 需求:把元组传递给*args参数,字典传递给**kwargs
# ① 如果想把元组传递给*args,必须在tuple1的前面加一个*号
# ② 如果想把字典传递给**kwargs,必须在dict1的前面加两个**号
func(*tuple1, **dict1)
# 案例:Python中数据的传递案例
# 不定长元祖 和不定长字典
# 案例 求所有参数的和
def sum_num(*args,**kwargs):
    result = 0
    for i in args:
        result += i
    for value in kwargs.values():
        result += value
    return  result




print(sum_num(10, 20, 30, num1=40,num2=50))

输出:
150
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值