(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