如何理解python不定长参数

  介绍

这篇文章给大家分享的是有关如何理解python不定长参数的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。

如何理解python不定长参数? * args和* * kwargs是什么意思?为什么要使用它们?下面我们来说一下这个问题。

1,函数参数可为分如下几种:必选参数,默认参数,可变参数,命名关键字参数和关键字参数。

2,当我们在定义和调用一个函数时,如果包含所有的参数类型,则必须按照:必选参数,默认参数,可变参数,命名关键字参数和关键字参数的顺序。但是在实际开发中,不建议包含过多的参数类型,会影响代码的可读性。

3,必选参数很简单,就是函数中必须要接受的参数。

4,默认参数,即给参数赋一个默认值,我们在传递时,可省略对该参数的传值操作。

如:

def  print_test(标题,味精=皐orld"):   ,,,印刷(标题,味精)      print_test (“hello"), #, hello 世界   print_test (“hello",,“demon"), #, hello 恶魔   print_test (“hello",味精=癲emon"), #, hello 恶魔      #,错误调用示例   #,print_test(,味精=癲emon",“hello"), #,这样是不对的

5,可变参数,在定义函数时用* args来接受,其中*是规定的,参数可用其他名称替换,但一般习惯用参数来表示。可变参数在传入函数后,被封装成一个元组来进行使用,所以我们在函数内部,可以通过操作元组的方法来操作参数,示例如下:

def  print_numbers (* args):,,,,,,,,,,,,   ,,,print(类型(args)), #,元组   ,,,for  n 拷贝参数:   ,,,,,印刷((n)型),,#,int      print_numbers (1,, 2,, 3,, 4)

6,如果在函数外已经得到一个列表或者元组,想调用一个可变参数,也可以用* +变量名的形式进行调用,(这种用法有点类似C语言中的指针),示例如下:

def  print_numbers (* args):,,,,,,,,,,,,   ,,,print(类型(args)), #,元组   ,,,for  n 拷贝参数:   ,,,,,印刷((n)型),,#,int      时间=l  [1,, 2,, 3,, 4]   print_numbers (* l),, #, * l等价于,print_numbers (1,, 2,, 3,, 4)   print_numbers (l),,, #,将,l 作为一个整体传入,这样函数接受到的其实只有一个参数,且参数类型为,列表

7,关键字参数使用kwargs来标识,是规定,而kwargs可替换,它将不定长参数转换为dict传入函数。它用于扩展函数的功能,比如我们要实现用户注册,有必输项和非必输项,这些非必输项就可以用关键字参数来接受。示例如下:

def 登记(姓名,电子邮件,,* * kwargs):   ,,,print(& # 39;名称:% s,,年龄:% s,,其他人:% & # 39;,,(姓名,电子邮件,,千瓦))      注册(“demon",,“1 @1.com"), #,名字:% s,,年龄:% s,,其他人:% s (& # 39;恶魔# 39;,,& # 39;1 @1.com& # 39;,, {})   注册(“demon",,“1 @1.com",, addr=皊hanghai"), #,名字:% s,,年龄:% s,,其他人:% s (& # 39;恶魔# 39;,,& # 39;1 @1.com& # 39;,, {& # 39; addr # 39;:, & # 39;上海# 39;})

感谢各位的阅读!关于如何理解python不定长参数就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到吧!

如何理解python不定长参数