Pergunta

Isso pode ser uma pergunta muito básica. Eu gostaria de validar uma variável é o tipo de cx_oracle.oraclecursor, então tentei algumas tentativas, mas tudo falhou:

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.
# ...

Como posso validar o tipo de cursor?

E a pergunta adicional é que exceção/erro é adequado para erro de tipo inválido?

Obrigado por qualquer ajuda!

Foi útil?

Solução

Você pode verificar o tipo de variável usando type(variable):

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

PS eu sei disso isinstance() é recomendado.

Outras dicas

Isso funciona para mim:

if isinstance(cursor, cx_Oracle.Cursor):
    ...
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top