python_函数参数

1.参数的基本知识

  • 任意个数
  • 任意类型
def func(a1,a2,a3):
    print(a1,a2,a3)
# 参数可以是任意个数和任意类型
func(1,'waf',True)

2.位置传参数(调用函数并传入参数)

  实参数量和形惨数量要保持一致,并且顺序保持一致

3.关键字传参数

def func(a1,a2):
    print(a1,a2)
# 实参直接给形参赋值,顺序可以调整
func(a2 = 'wdc',a1 = 123)

  #关键字传参和位置传参可以混合使用

def func(a1,a2,a3):
    print(a1,a2,a3)
# 但必须把位置传参放前面。关键字传参放后面
func('wdc',123,a3='rwq')

4.默认参数

# 在定义函数时,可以设置默认函数的值,a3的参数可以传可以不传
# 如果传的话,参数为传的值,如果不传则为默认值
def func(a1,a2,a3='yhf'):
    print(a1,a2,a3)
func(123,'wdc')
func(123,'wdc','qweqe')

5.万能参数(打散)

  *args

# *args将所有获取到的参数放到一个元组里面,*a可以接受任意个参数
def func(*args):
    print(args)
func(123,'wdc')
func(123,'wdc','qweqe',(1,2,3))

def func(*args):
print(args)
# 元组里面套个元组
func((11, 22, 33, 44, 55))# a = ((11, 22, 33, 44, 55),)
# 元组前面带*可以将元组打散
func(*(11,22,33,44,55))# a = (11, 22, 33, 44, 55)

# 第一个参数给a1,其他参数给args
def func(a1,*args):
print(a1,args)
func('wdc',123,456,789)

# 这种情况下a2只能用关键字传参数
def func(a1,*args,a2):
print(a1,args,a2)
func('wdc',123,456,789,a2='yhf')

   #不支持关键字传参,只支持位置传参

  **kwargs

# 可接受任意个关键字参数
# **v1只能传关键字参数,生成一个字典{k1:1,k2:2}
def func(**kwargs):
    print(kwargs)
func(k1 = 1,k2 = 2)

def func(**kwargs):
print(kwargs)
# 传递字典参数
func(**{'k1':1,'k2':2})
func(k1 = {'k1':1,'k2':2})
   输出结果:

  综合应用

# 真·万能参数
def func(*args,**kwargs):
    print(args,kwargs)
func(1,2,3,k1 = 123,k2 = 'wdc')
func(*(1,2,3),k1 = 123,k2 = 'wdc')
func(*(1,2,3),**{'k1':123,'k2':'wdc'},k3 = 'yhf')
原文地址:https://www.cnblogs.com/wangdianchao/p/11471490.html