python中函数的参数可不可以在可变参数后面加一般参数

python中函数的参数可不可以在可变参数后面加一般参数,第1张

定义函数参数时,用IDataParameter[]和SqlParameter[]时没有区别,作用是一样的。IDataParameter[]是SqlParameter[]的接口实例。定义函数的时候,我们把参数的名字和位置确定下来,函数的接口定义就完成了。对于函数的调用者来说,只需要知道如何传递正确的参数,以及函数将返回什么样的值就够了,函数内部的复杂逻辑被封装起来,调用者无需了解。Python的函数定义非常简单,但灵活度却非常大。除了正常定义的必选参数外,还可以使用默认参数、可变参数和关键字参数,使得函数定义出来的接口,不但能处理复杂的参数,还可以简化调用者的代码。

无办法直接做到这一点,不过可以采用其他方法实现,例如:首先,定义被调用函数的参数为va_list类型,同时在调用函数中将可变长参数列表转换为va_list,这样就可以进行变长参数的传递了。看如下所示:

void subfunc (char *fmt, va_list argp)

{

...

arg = va_arg (fmt, argp)/* 从argp中逐一取出所要的参数 */

...

}

void mainfunc (char *fmt, ...)

{

va_list argp

va_start (argp, fmt)/* 将可变长参数转换为va_list */

subfunc (fmt, argp)/* 将va_list传递给子函数 */

va_end (argp)

...

}

这样就OK了!


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11706958.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存