命名关键字参数

发布时间 2023-12-11 14:41:40作者: 苏苏!!

命名关键字参数

(1)在函数内判断

  • 在定义了**kwargs参数后,函数调用就可以传入任意的关键字参数key=value
  • 如果函数体代码的执行需要依赖某个key,就必须在函数内进行判断
def register(name, age, **kwargs):
    if 'sex' in kwargs:
        # 有sex参数
        pass
    if 'height' in kwargs:
        # 有height参数
        pass

(2)命名关键字传参

  • 需要在定义形参时,用 * 作为一个分隔符号,* 号之后的形参称为命名关键字参数。
  • 对于这类参数,在函数调用时,必须按照key=value的形式为其传值,且必须被传值
"""命名关键字传参用*隔断"""
#命名关键字参数必须以key=value的形式传值

#定义形参的时候,用*作为分隔符合,*之后的形参成为关键字参数,
#*之后的参数,在函数调用时,必须以key=value的形式为其传值,并且必须被传值
def add(name,age,*,sex,height):
    pass
    print()
add('syh',18,sex='男',height='180')

(3)命名关键字参数和命名关键字参数默认值

  • 命名关键字参数也可以有默认值,
  • *号之后的参数都是命名关键字参数,命名关键字参数的默认值在前也不会有问题。
  • 另外,如果形参中已经有一个*args了,命名关键字参数就不再需要一个单独的 * 作为分隔符号了
def add(name,age,*,sex='男',height):
    print(f"{name}-{age}-{sex}-{height}")

add('syh',18,height='180')
#syh18男180