函数中的动态参数

所谓的动态参数就是在写函数时,你可以传递1个参数,2个参数,3个参数甚至更多,同时也可以忽略它。

动态参数:一般有两种表示方法: *args 和**kwargs ,它的区别不是在于 args 和kwargs 这里可以替换成任意字母,这里最主要的区别是* 和**

动态参数跟默认参数一样,要写在位置参数的后面

def func(name,age,sex,class="1001",*args,**kwargs):
pass

*args 和**kwargs 的区别:

  • *args:1个* 表示接收的任意参数,调用的时候,会将实际参数一以元组的形式传给形式参数。如果参数是一个列表,将会把整个列表当做一个参数传递

例如:

def func(*args):
    print(args)

func("a","b","c")
func(["1","2","3"])
结果:
('a', 'b', 'c') (['1', '2', '3'],)
  • 如上列表的结果,我的本意是想把列表中的数字分别输出,但是这里却是以一个参数的形式输出。如果需要把列表中的数字分别输出就要在前面加个*,这里可以理解为给列表脱外套
def func(*args):
    for arg in args:
        print(arg)

list_1 = ["a","b","c"]
func(*list_1)
  • **kwargs:2个**表示接收的是任意键值对的关键字参数,这里调用的时候是以字典的形式传递给形式参数

例如:

def stu_info(**kwargs):
    print(kwargs)

stu_info(name="lily",age=18,sex="famle")
结果:
{'name': 'lily', 'age': 18, 'sex': 'famle'}

 

posted @ 2018-12-07 11:17  小韩子  阅读(604)  评论(0编辑  收藏  举报