python函数进阶与参数处理-*args和**kwargs

"""可变参数
- 可变参数也成为不定长参数
- 传入函数中实际参数可以是任意多个
- 常见形式
- *args
- **kwargs
"""
  • *args
"""*args
- 接收收任意多个实际参数,并将其放到一个元组中
- 使用已经存在的列表或元组作为函数的可变参数,可以在列表的名称前j加*
"""
# 接收收任意多个实际参数,并将其放到一个元组
def print_language(*args):
    print(args)
    for i in args:
        print(i)


# 调用函数,把不同数量的参数传递进去,这里用位置参数
# 即把传入的实参,打包成元组
print_language("中文", "English", "韩语")
print_language("中文", "English", "韩语", "日语")

# 使用已经存在的列表或元组作为函数的可变参数,可以在列表的名称前j加*
list1 = ["中文", "English", "韩语"]
# 等价print_language("中文", "English", "韩语")
print_language(*list1)

  • **kwargs
"""**kwargs
- 接收任意类似关键字参数一样显示赋值的实际参数,并将其放在一个字典中
- 使用已经存在字典作为函数的可变参数,可以在字典的名称前加**
"""
# 接收任意类似关键字参数一样显示赋值的实际参数,并将其放在一个字典中
# 即把传入的实参打包成字典
def print_info(**kwargs):
    print(kwargs)


print_info(name="xiaoming", age=13)
print_info(name="xiaowang", age=18, hobby="sing")

# 使用已经存在字典作为函数的可变参数,可以在字典的名称前加**
dict = {"xiaowang": 22, "xiaosong": 28, "laowang": 66}
print_info(**dict)

 

posted @ 2022-08-22 21:37  woft王  阅读(172)  评论(0)    收藏  举报