Python execute的返回值
是否总是self的返回值?i、 e.我能否安全地Python execute的返回值,python,python-3.x,sqlite,Python,Python 3.x,Sqlite,是否总是self的返回值?i、 e.我能否安全地返回一些连接对象。执行(…)或使用方法链接?我无法在该文档中找到相关文本。当文档失败时,请查看代码(python 3.6.4): 在_pysqlite_query_execute函数末尾: if (PyErr_Occurred()) { self->rowcount = -1L; return NULL; } else { Py_INCREF(self); ret
返回一些连接对象。执行(…)
或使用方法链接?我无法在该文档中找到相关文本。当文档失败时,请查看代码(python 3.6.4):
在_pysqlite_query_execute函数末尾:
if (PyErr_Occurred()) {
self->rowcount = -1L;
return NULL;
} else {
Py_INCREF(self);
return (PyObject*)self;
}
}
PyObject* pysqlite_cursor_execute(pysqlite_Cursor* self, PyObject* args)
{
return _pysqlite_query_execute(self, 0, args);
}
因此,除非发生错误,否则该方法将返回self
但是,根据(对于DBAPI2),没有定义返回值,这意味着您需要自己处理,并且您以这种方式编写的代码可能无法在不同的DBAPI2实现之间移植。实际上,根据,execute
返回None
答案是,不能从更广泛的意义上安全地链接方法,因为这样做限制了未来代码重用的可能性。我不研究代码,因为我认为它是实现细节,不能依赖。无论如何,我会避免使用这个功能(因为缺少文档),只是想确保我没有忽略一些东西。