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'}
最最后,知道参数是怎么传递的,也知道参数保存的地方,那么函数里的操作就有很大空间,函数的功能也会更加丰富包容。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。