2010-06-09 34 views
1

Cela pourrait être une question très basique. Je voudrais valider une variable est de type de cx_Oracle.OracleCursor, alors j'ai essayé quelques essais mais ont tous échoué:Validation de type pour 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. 
# ... 

Comment puis-je valider le type de cursor?

Et la question supplémentaire est de savoir quelle exception/erreur convient à une erreur de type non valide?

Merci pour toute aide!

Répondre

1

Vous pouvez vérifier le type de variable à l'aide type(variable):

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

PS Je sais que isinstance() est recommandé.

1

Cela fonctionne pour moi:

if isinstance(cursor, cx_Oracle.Cursor): 
    ...