ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python的arg, *args, **kwargs

2021-09-13 12:32:45  阅读:182  来源: 互联网

标签:me python kwargs args 传递 func arg


  


 

     新手日常学习,python args, *args, **kwargs;

 

  (1). args:就正常的一个形式参数(简称形参),如果不知道什么是形参就去搜索一下 ”函数间参数的传递“。

  这里传啥arg就等于啥。传1,arg=1,传'a', arg='a',传'/',arg='/'。

 

    a. 代码:

def func_me(arg):
    print(arg, type(arg))

func_me(1)
func_me('a')
func_me('/')

   

    b. 效果图:

         

  这里左边是我们传递的值,右边表示这个值是什么类型的变量,比如:第一行我们传递的是1,那么arg=1,且1 是int(整数类型):


 

    (2). *args:我的理解是将传递过来的所有参数,放在一个元组里面来使用,元组(tuple)

    a. 代码:

def func_me(*args):
    print(args, type(args))

func_me(1,2,3)
func_me('a', 'b', 'c')
func_me('/', '+', '-')
func_me(1, 'a', '/')

  

     b. 效果图:

        

  这里我们可以看到,我在func_me()括号里面传递不管什么类型,不管多少变量,最后都会被一个括号包括起来成为一组。这个就是元组的形式,右边也可以看到为tuple(元组类型)。


 

  (3). **kwargs: 我的理解是将传递过来的所有参数,放在一个字典里面使用,字典(dict)

 

    a. 代码:

def func_me(**kwargs):
    print(kwargs, type(kwargs))

func_me(a=1, b=2, c=3)
func_me(m='/', n='+', q='s')
func_me(user_name='admin', password='123456/_dfda')

  代码这里传递的参数要注意是,key = values(键 = 值)这种形式才可以,不然会报错。

 

     b. 效果图:

        

  可以看到,传递过来的参数都被设置成字典的形式来存放了,右边表示类型也为字典(dict)。

  

 


 

  最后就是几个拓展点吧:

  (1): 其实arg, *args, **kwargs这几个参数的名字可以改的,不一定非要是arg, args, kwargs,我们改成*a, *abc, **woaini, 都可以。刚开始学的时候以为一定要是arg, args, kwargs这样命名才行。

  (2): 这三个可以放在一起使用,比如你在写函数时,可以func_me(arg, *args, **kwargs)这样来写。

  (3): 跟着(2)来说,  在给函数里面写参数的时候,顺序一定要按照, arg, *args, **kwargs这个顺序依次来写,不然就会报错。

 

 


如果有错,还请指出。感谢!为了学习,为了成长!solute

                                                        ----recoding my life

 

标签:me,python,kwargs,args,传递,func,arg
来源: https://www.cnblogs.com/913t-sec/p/15261758.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有