python3 函数的参数
函数的参数
形参(函数定义时) + 实参(函数调用时)
形参:形式参数 在函数的定义处定义的参数,比如def func(参数1, 参数2, 参数3...)
普通参数(位置参数), 默认参数,普通收集参数(*args), 关键字收集参数(*kwargs), 命名关键字参数
实参:实际参数 在函数调用处定义的参数,比如 func(参数1, 参数2, 参数3...)
普通参数(位置参数),关键字参数
函数定义处
def func(参数1, 参数2, 参数3...):
pass
函数调用处
func(参数1, 参数2, 参数3...)
#普通形参(位置形参)
#函数定义处:普通形参(位置形参) def func(n,m): print("%d x %d = %d"%(n, m , n*m)) #函数调用处:普通实参(位置实参) func(2,3) #2 x 3 = 6
#默认形参
#函数定义处:默认形参 def func(n=2,m=3): print("%d x %d = %d"%(n, m , n*m)) #函数调用处:普通实参(位置实参) func() #2 x 3 = 6 #使用默认参数 func(4,5) #4 x 5 = 20 #自定义参数
#普通收集形参(*args)
# 函数定义处:普通收集形参,通用写法:*args def func(*args): print(args) #(1, 2, 3, 4, 5) 输出的是一个元组 total = 0 pro = [] for i in args: total += i pro.append(str(i)) print('+'.join(pro)+'='+str(total)) ##1+2+3+4+5=15
#函数调用处:普通实参(位置实参)
func(1, 2, 3, 4, 5)
#关键字收集形参(**kwargs)
# 函数定义处:关键字收集形参,通用写法:**kwargs def func(**kwargs): print(kwargs) #{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5} 输出的是一个字典 total = 0 pro = [] for v in kwargs.values(): total += int(v) pro.append(str(v)) print('+'.join(pro)+'='+str(total)) ##1+2+3+4+5=15 #函数调用处:关键字实参 func(a = 1, b = 2, c = 3, d = 4, e = 5)
#命名关键字形参
#(1) # 函数定义处:命名关键字形参,通用写法:在*后边的形参,在进行函数调用时都需要通过关键字实参传入。 def func(a, b, * , c, d): print("%d+%d+%d+%d=%d"%(a, b, c, d,a+b+c+d)) #函数调用处:c 和 d 需要使用关键字实参传入 func(1, 2, c = 3, d = 4) #1+2+3+4=10 #(2) # 函数定义处:命名关键字形参,通用写法:在普通收集参数(*args)和关键字收集参数(**kwargs)中间的参数,在进行函数调用时都需要通过关键字实参传入。 def func(*args, a, b, **kwargs): print(args, a, b, kwargs) # 函数调用处:a 和 b 需要使用关键字实参传入 func(1, 2, a=3, b=4, c=5, d=6) #(1, 2) 3 4 {'c': 5, 'd': 6}