Python参数传递及收集机制原理解析

python参数传递时,主要有位置参数和关键字参数。

1. 位置参数:顾名思义,参数的位置顺序很重要,因为是直接根据位置赋值的。

def func1(a, b):
  print(a,b) # 位置参数,位置顺序很重要
func1(1,2)

3. 位置参数和关键字参数混合时,位置参数必须全部在关键字参数的前面。

def func3(a, b, c=1):
  print(a,b,c) # 混合使用时,位置参数必须在前面,否则程序会不知道位置参数对应的值是什么
func3(1,2,100)
func3(1,2,c=100)

5. 通过双星号 '**',收集关键字参数,形成字典

arg = {'c':1,'d':2}
def func5(**args): # 存多个参数,关键字参数收集形成字典
  print(args)
  print(args['c'])
func5(**arg)  #传递形式一
func5(**{'c':1,'d':2}) # 二,或者显式传递字典

7. 关键字参数和双星号 '**' 收集参数的混合:同理双星号 '**' 表示收集没有对应关键字参数的其他关键字参数

def func7(c=1, d=2, **args): # 混合关键字参数,**表示收集没有对应关键字参数的其他关键字参数,即多余的关键字参数
  print(c,d)
  print('args:',args)
func7(1,d=2,e=3,f=4)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持来客网。