Tipo de validação para cx_oracle.oraclecursor
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!
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