Python函数参数补充

 

# 1. 命名关键字参数(了解)
# 命名关键字参数:在定义函数时,*后定义的参数,如下所示,称之为命名关键字参数
# 特点:
# 1、命名关键字实参必须按照key=value的形式为其传值,但大多数情况下没有必要强制函数使用者按照某种方式传值
# def func(x,y,*,a,b): # 其中,a和b称之为命名关键字参数
# print(x,y)
# print(a,b)
#
# # func(1,2,b=222,a=111) #成功
    func(1,2,3,4)#报错,报错信息为:func() takes 2 positional arguments but 4 were given
# 示例
# def func(x,y,*,a=11111,b): #其中设置了一个默认参数
# print(x,y)
# print(a,b)
#
# func(1,2,b=22222)

# 2. 组合使用(了解)
# 形参混用的顺序:位置形参,默认形参,*args,命名关键字形参,**kwargs
# def func(x,y=111,*args,z,**kwargs): #这样定义传值非常麻烦
# prin
# print(y)
# print(args)
# print(z)
# print(kwargs)

 
# 实参混用的顺序:
def func(x,y,z,a,b,c):
print(x)
print(y)
print(z)
print(a)
print(b)
print(c)

#func(111,y=222,*[333,444],**{'b':555,'c':666}) #打散之后发现位置实参在关键字实参后面,报错
# func(111,y=222,333,444,b=555,c=666) #这种位置实参位于关键字实参后,报错

# func(111,*[333,444],a=222,**{'b':555,'c':666})
# func(111,333,444,a=222,b=555,c=66)

# func(111,*[333,444],**{'b':555,'c':666},a=222,)
# func(111,3333,4444,b=555,c=666,a=222)


# func(1) #报错,还有四个值未传,下面的都会报错,统一的原因还是形参要求的变量个数未达到
# func(x=1)
# func(1,x=1)
# func(*'hello')
# func(**{})
# func(*'hell',**{})


posted @ 2021-02-05 09:24  欢喜悲  阅读(103)  评论(0)    收藏  举报