广告位联系
返回顶部
分享到

Python中关于 *args与**args的用法介绍

python 来源:互联网 作者:佚名 发布时间:2023-09-17 22:25:32 人浏览
摘要

关于 *args与**args的用法 *args 和 **kwargs主要用于函数定义,你可以将不定数量的参数传递给某个函数。 *args *args 不定参数(不定的意思是指,预先并不知道,函数使用者会传递多少个参

关于 *args与**args的用法

*args 和 **kwargs主要用于函数定义,你可以将不定数量的参数传递给某个函数。

*args

*args 不定参数(不定的意思是指,预先并不知道,函数使用者会传递多少个参数给你)

*args是用来发送一个非键值对的可变数量的参数列表给一个函数。

*args的用法:当传入的参数个数未知,且不需要知道参数名称时。

代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

def func_arg(farg, *args):

    print("formal arg:", farg)

    for arg in args:

        print("another arg:", arg)

func_arg(1,"youzan",'dba','hello')

 

 

# 输出结果如下:

# formal arg: 1

# another arg: youzan

# another arg: dba

# another arg: hello

**kwargs

**kwargs 传入键值对(例如:num1=11,num2=22)

**kwargs 允许将不定长度的键值对作为参数传递给一个函数。如果想要在一个函数里处理带名字的参数,应该使用 **kwargs。

代码如下:

1

2

3

4

5

6

7

#利用它转换参数为字典

def kw_dict(**kwargs):

    return kwargs

print(kw_dict(a=1,b=2,c=3))

 

# 输出结果如下:

# {'a': 1, 'b': 2, 'c': 3}

*args和**kwargs是什么意思

去面试的时候,做了一道笔试题——什么是*args和**kwargs,区别在哪里?

有点蒙,好像见过,但是不知道具体的意思。所以回来查了一下资料,做一下笔记。

总的来说,*args代表任何多个无名参数,返回的是元组;**kwargs表示关键字参数,所有传入的key=value,返回字典;

*args和**kwargs的用途

*args 和 **kwargs 主要用于函数定义, 可以将不定数量的参数传递给一个函数。

*args 是用来发一个非键值对的可变数量的参数列表给一个函数; kwargs允许将一个不定长度的键值对,作为参数传递给一个函数。如果需要在一个函数中处理带名字的参数时,此时就应该使用kwargs了。

1

2

3

4

5

def test(a,*args,**kwargs):

    print(a)

    print(args)

    print(kwargs)

test(1,3,5,7,c='2',d=4)

1
(3, 5, 7)
{‘c’: ‘2’, ‘d’: 4}

在test(1,3,5,7,c=‘2’,d=4)中,函数里参数对应的数值为:a=1,*args表示剩下的没有名称的参数,**kwargs表示剩余的键值对。

1

2

3

4

5

6

7

8

9

10

def ak(*args,**kwargs):

    print('args=',args)

    print('kwargs=',kwargs)

    print('***************************************')

if __name__=='__main__':

    ak(2,4,6,8)

    ak(a=2,b=4,c=6,d=8)

    ak(2,4,6,8,a=1,b=3,c=5)

    ak('x', 2, None, a=4, b='6', c=8)

    #ak('a', a=1, 1, None, b='2', c=3)

在这里插入图片描述

同时使用*args和kwargs时,*args参数必须要列在kwargs前,否则会报错。

1

ak('a', a=1, 1, None, b='2', c=3)

File “”, line 1
ak(‘a’, a=1, 1, None, b=‘2’, c=3)
^
SyntaxError: positional argument follows keyword argument


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 :
相关文章
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计