Python函数之不定长参数

 概念

概述:
        不定长参数也叫可变参数, 即: 参数的个数是可变的.
    格式:
        在形参名的前边写上 *, 或者 **,
        如果是 * 则表示可以接收所有的 位置参数, 形成元组.
        如果是 ** 则表示可以接收所有的 关键字参数, 形成字典.
    细节:
        1. 如果位置参数, 一般用 *args表示.
        2. 如果是关键字参数, 一般用 **kwargs       kw: keyword 关键字的意思.
        3. 可变参数用于形参, 表示可以接收任意个实参, 最少0个, 最多无数个.

 *args参数

# 需求1: 演示可变参数之 位置参数.
# 需求: 定义函数, 求和.
# 分解版
def getSum3(a, b, c):
    return a + b + c


def getSum4(a, b, c, d):
    return a + b + c + d


# 我们发现, 上述的代码, 形参列表是不同的, 但是函数体是高度相似的, 我们可以用 可变参数(不定长参数)优化, 如下.
def getSum(*args):  # 你把这的 args当做元组即可.
    print(args, type(args))     # tuple 元组类型.
    # 定义求和变量.
    sum = 0
    # 遍历, 获取每个数字, 然后累加.
    for i in args:
        sum += i
    return sum  # 返回求和结果


# 调用getSum()函数
print(getSum())
print(getSum(10, 20))
print(getSum(10, 20, 30))
print(getSum(33, 11, 5, 66))
# print(getSum(33, 11, 5, 66, age=33))    #报错,  *args 可变参数, 能接受所有的位置参数, 形成元素, 无法接收 关键字参数.

**kwargs

# 定义函数.
def show(**kwargs):  # 它只能接收 关键字参数, 形成字典.
    print(type(kwargs))  # <class 'dict'>
    print(kwargs)


# 调用函数.
# show(10, 20, 30)    # 报错, **kwargs, 只能接收 关键字参数.

show(name='刘亦菲', age=33)
print('-' * 31)


# 演示: 函数能不能既有 *args, 又有 **kwargs呢?
def func1(*args, **kwargs):
    print(args, type(args))  # (10, 20, 30) <class 'tuple'>
    print(kwargs, type(kwargs))  # {'name': '高圆圆', 'age': 35} <class 'dict'>


# 调用函数
#      位置参数      关键字参数
func1(10, 20, 30, name='高圆圆', age=35)
print('-' * 31)


#           普通参数    可变参数    缺省参数
def func2(name, age,    *args,      address='中国'):
    print(name, age, address, args)


#     位置参数              关键字参数
func2(10, 20, 30, 40, 50, address='北京')

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值