定义函数的
参数时,用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了!
评论列表(0条)