这篇文章给大家分享的是有关如何理解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不定长参数就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到吧!