可变参数和关键字参数——传参时参数带名字

位置参数 ---> positional argument
关键字参数 ---> keyword argument ---> 参数名=参数值

关键字参数一定在位置参数后面

# *args ---> 可变参数 ---> 可以接收零个或任意多个位置参数 ---> 将所有的位置参数打包成一个元组
def add(*args):
    print(args, type(args))
    temp = [arg for arg in args if type(arg) in (int, float)]
    return sum(temp)


# **kwargs --> 可以接收零个或任意多个关键字参数 ---> 将所有的关键字参数打包成一个字典
def add2(**kwargs):
    print(kwargs, type(kwargs))
    temp = [kwarg for kwarg in kwargs.values() if type(kwarg) in (int, float)]
    print(temp, type(temp))
    return sum(temp)


# 位置参数需要在关键字参数前面,即*需要在**前
def com(*args, **kwargs):
    print(f'args输出:{args},kwargs输出:{kwargs}')
    return


print(add())
print(add(1))
print(add(1, 2))
print(add(1, 2, 3, 4))
# # TypeError: add() got an unexpected keyword argument 'a'
# print(add(a=1, b=2))

print(add2(a=1, b=2))
com(1, 2, 3, '4', a=5, b='6')
posted @   Danlis  阅读(26)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
历史上的今天:
2017-09-06 Linq-string判断忽略大小写
2016-09-06 图片质量压缩
点击右上角即可分享
微信分享提示