Тип валидации для CX_ORCALL.ORACLECURSOR
Вопрос
Это может быть очень основным вопросом. Я хотел бы проверить переменную - это тип cx_oracle.oraclecursor, поэтому я попробовал пару испытаний, но все не удалось:
import cx_Oracle
def execute_sql(cursor):
"""Execute a SQL using cursor(cx_Oracle.OracleCursor)."""
if not cursor:
logging.error('cursor is null.')
return None # TODO: raise some exception.
# elif isinstance(cursor, OracleCursor): # failed
# elif isinstance(cursor, cx_Oracle.OracleCursor): # failed
logging.error('cursor is not OracleCursor.')
return None # TODO: raise some exception.
# ...
Как я могу подтвердить тип cursor
?
И дополнительный вопрос в том, что исключение / ошибка подходит для ошибки неверных типов?
Спасибо за любую помощь!
Решение
Вы можете проверить тип переменной, используя type(variable)
:
if str(type(cursor)) == "<type 'OracleCursor'>":
...
PS Я знаю, что isinstance()
Рекомендовано.
Другие советы
Это работает для меня:
if isinstance(cursor, cx_Oracle.Cursor):
...
Не связан с StackOverflow