在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
标签:中带,函数,形参,python,星号,参数,print,5201351 From: https://www.cnblogs.com/5201351/p/16753838.html