【python笔记】两个魔法变量*args 和**kwargs

args 和 *kwargs 主要⽤于函数定义。

# 注意:标准参数与*args、**kwargs在使⽤时有顺序要求
def test_var(firstVar, *args, **kwargs):
    print(f"第一个位置参数:{firstVar}")
    # for arg in args:
    #     print(f"其他位置参数{arg}")
    print(f"*args={args}")
    # for key, value in kwargs.items():
    #     print(f"其他关键字 参数{key}={value}")
    print(f"**kwargs={kwargs}")

首先,魔法变量args 和kwargs中,变量名args与kwargs只是两个通俗的命名约定非固定不变,可以其他命名vars,kwars。

然后,魔法体现在上。args表示变量args接收不定数量,非命名参数,返回一个元组--所有没有名字无人认领的传入参数组成顺序元组。kwargs表示变量kwargs接收不定数量,关键字命名参数,返回一个字典--所有以“keyName=value“形式传入的参数组成字典。

代码中的标准参数,就是位置参数firstVar。

函数定义,参数顺序:标准参数→args→*kwargs

调用函数,传参顺序:位置参数→关键字参数

最后,测试应用。

if __name__ == "__main__":
    test_var("888", 5, 6, "abc", average=55, score=63, stuName="WuLiLy")

输出:

第一个位置参数:888

*args=(5, 6, 'abc')

**kwargs={'average': 55, 'score': 63, 'stuName': 'WuLiLy'}

最最后,知道参数是怎么传递的,也知道参数保存的地方,那么函数里的操作就有很大空间,函数的功能也会更加丰富包容。

你可能感兴趣的:(人工智能python)