استبطان بيثون

يمكن تحليل الوظائف والمتغيرات والكائنات باستخداماستبطان - سبر غور.

أولاً ، باستخدام ملفhelp()الوظيفة العامة يمكننا الحصول على الوثائق إذا تم تقديمها في شكل سلاسل مستندات.

بعد ذلك ، يمكنك استخدام print () للحصول على معلومات حول وظيفة:

def increment(n):
    return n + 1

print(increment)

# <function increment at 0x7f420e2973a0>

أو كائن:

class Dog():
    def bark(self):
        print('WOF!')

roger = Dog()

print(roger)

# <main.Dog object at 0x7f42099d3340>

الtype()الوظيفة تعطينا نوع الكائن:

print(type(increment))
# <class 'function'>

print(type(roger)) # <class ‘main.Dog’>

print(type(1)) # <class ‘int’>

print(type(‘test’)) # <class ‘str’>

الdir()تتيح لنا الوظيفة العامة معرفة جميع طرق وسمات الكائن:

print(dir(roger))

# [‘class’, ‘delattr’, ‘dict’, ‘dir’, ‘doc’, ‘eq’, ‘format’, ‘ge’, ‘getattribute’, ‘gt’, ‘hash’, ‘init’, ‘init_subclass’, ‘le’, ‘lt’, ‘module’, ‘ne’, ‘new’, ‘reduce’, ‘reduce_ex’, ‘repr’, ‘setattr’, ‘sizeof’, ‘str’, ‘subclasshook’, ‘weakref’, ‘bark’]

الid()توضح لنا الوظيفة العامة الموقع في ذاكرة أي كائن:

print(id(roger)) # 140227518093024
print(id(1))     # 140227521172384

قد يكون من المفيد التحقق مما إذا كان هناك متغيرين يشيران إلى نفس الكائن.

الinspectتمنحنا وحدة المكتبة القياسية المزيد من الأدوات للحصول على معلومات حول الكائنات ، ويمكنك التحقق من ذلك هنا:https://docs.python.org/3/library/inspect.html


المزيد من دروس بيثون: