在python中,定时函数时,一般就得确定函数的参数的个数
当然函数可以没有参数,也可以指定明确的形式参数的个数,那样在调用这个函数时,实参的个数就需要与形参个数一致
def PrintAuthor(name): print(name) PrintAuthor("QQ:5201351")
如果此时不传递参数,则会报错:TypeError: PrintAuthor() missing 1 required positional argument: 'name'
当然与是否在函数体中使用了那个形参无关,即使没有引用到形参,也同样会报上面的错误~
反之如果定时函数时没有形参,而使用函数时却传递了参数,那么也报错:
TypeError: PrintAuthor() takes 0 positional arguments but 1 was given
但在有时候,我们可能会希望用户使用函数时,提供任意数量的参数,函数都能正常的运行,这时应该怎么办呢?
这时我们。就可以使用到带*星号参数,也就是python函数的收集参数功能,如下:
def PrintParms(*params): print(params) PrintParms(1,2,3,"QQ:5201351")
运行结果将如下:
(1, 2, 3, 'QQ:5201351')
从定时函数和结果,我们可以看出,参数前面的星号将提供的所有值都放在一个元组中了,也就是将这些值收集起来了~
关于带有参数收集的函数,下面笔者在列举一些更高级的用法:
1、带星号的参数,会收集余下的所有参数,那么也就是说可以前面是定义几个形式参数,最后使用带星号的参数
2、当然带星号的参数,也不一定,一定需要放到最后面,最后还可以定义关键字参数,星号不会收集关键字参数的
这里笔者通过一个简单的例子就可以说明上面的两种情况,如下
def PrintParms(x,*params,z): print(x) print(params) print(z) PrintParms(1,2,3,"QQ:5201351",z="https://www.cnblogs.com/5201351")
运行结果如下:
1 (2, 3, 'QQ:5201351') https://www.cnblogs.com/5201351
对于有关键字数量,在传参时,变量参数的名称需要与形参关键字一样,如上可以看到使用时,使用的z=xxxxx
尊重别人的劳动成果 转载请务必注明出处:https://www.cnblogs.com/5201351/p/16753838.html
作者:一名卑微的IT民工
出处:https://www.cnblogs.com/5201351
本博客所有文章仅用于学习、研究和交流目的,欢迎非商业性质转载。
由于博主的水平不高,文章没有高度、深度和广度,只是凑字数,不足和错误之处在所难免,希望大家能够批评指出。
博主是利用读书、参考、引用、复制和粘贴等多种方式打造成自己的文章,请原谅博主成为一个卑微的IT民工!