سؤال

يمكن أن يكون هذا سؤالًا أساسيًا للغاية. أرغب في التحقق من صحة متغير هو نوع 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?

والسؤال الإضافي هو ما هو الاستثناء/الخطأ المناسب لخطأ نوع غير صالح؟

شكرا على اي مساعدة!

هل كانت مفيدة؟

المحلول

يمكنك التحقق من نوع المتغير باستخدام type(variable):

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

ملاحظة أنا أعلم ذلك isinstance() موصى به.

نصائح أخرى

هذا يعمل بالنسبة لي:

if isinstance(cursor, cx_Oracle.Cursor):
    ...
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top