Python函数调用时的实参与函数定义时的形参前加单星号(*)和双星号(**)

不定长参数*args和**kwargs(形参前面的*和**)

  • *args和**kwargs都是函数定义时的形参,用来接收未知个数的实参(可以为0个)。
  • *args将多余的变量以元组的形式接收。
  • **kwargs将多余的命名参数(即带有变量名的实参)以字典的形式接收,其中字典的键为命名参数的变量名,值为命名参数的值。

拆包(实参前面的*和**)

  • 上面的*和**都是加在形参的前面,表示不定长参数,分别用来接收不带变量名的多余参数和带有变量名的多余参数,分别将它们以元组和字典的形式接收进函数。
  • 当在实参的前面加上*和**时,就意味着拆包。单个*表示将元组拆成一个个单独的实参,而两个*则表示将字典拆成一个个单独的带变量名的实参。
  • 实参前面加*或**,该实参一定不是普通的数据类型。*后面必须是元组实参,而**后面必须是字典实参。

你可能感兴趣的:(python)