2010-06-09 2 views
1

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

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

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

ответ

1

Вы можете проверить тип переменной с помощью type(variable):

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

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

1

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

if isinstance(cursor, cx_Oracle.Cursor): 
    ... 
Смежные вопросы