Проверка типа для cx_Oracle.OracleCursor - PullRequest
1 голос
/ 09 июня 2010

Это может быть очень простой вопрос. Я хотел бы проверить переменную типа 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?

И дополнительный вопрос: какое исключение / ошибка подходит для ошибки недопустимого типа?

Спасибо за любую помощь!

Ответы [ 2 ]

1 голос
/ 04 апреля 2013

Это работает для меня:

if isinstance(cursor, cx_Oracle.Cursor):
    ...
1 голос
/ 09 июня 2010

Вы можете проверить тип переменной, используя type(variable):

if str(type(cursor)) == "<type 'OracleCursor'>":
       ...

PS Я знаю, что рекомендуется isinstance().

...