Python的函数参数详解(2)

func(1, 2, **{'a': 3, 'b': 4, 'c': 5} )  # 等同于 func(1, 2, a = 3, b = 4, c = 5)
# 输出结果:                                # 输出结果一致
1 2
{'a': 3, 'b': 4, 'c': 5}

接收任意长度、任意形式参数的函数

def func(*args,**kwargs):
    pass

调用方式:

func(1, 2, 3)            # 参数被 * 接受,转成元组,保存在 args 中
func(1, x=1, y=2)    # 1 与上述一致,x=1, y=2 被 ** 接受,转成字典的形式,保存在kwargs中

# 前面已经提过,位置实参和关键字实参混合使用时,要注意关键字实参必须放在位置实参的后面~

命名关键字参数

定义函数时,* 号后面的形参就是 命名关键字参数,在调用时,命名关键字参数 必须要传值,而且必须要以关键字的形式传值,还有命名关键字并不常用~

def func(*, name, age):        # name 和 age 就是 命名关键字参数
    print(name)
    print(age)

func(name = 'abc', age = 2)  # name 和 age 必须以关键字的形式传值

命名关键字参数的使用示例。前面提过 默认形参必须放在位置形参后面,如下示例的函数定义中,name 和 age 都是命名关键字参数(不是默认形参,也不是位置形参),name 是命名关键字参数的默认值,所以如下示例中的函数定义方式并没有问题~

def func(*,, age):
    print(name)
    print(age)

func(age=2)

.................^_^

Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/4fbc3820cfa1f238023c7c7f7a40c08b.html