آشنایی با تابع dir پایتون

امیرحسین بیگدلو 6 ماه قبل

در این مقاله با تابع dir پایتون آشنا خواهید شد. تابع dir جزو توابع داخلی پایتون بوده و همه جا در دسترس است. تابع dir برای پیدا کردن ویژگی های مربوط به آبجکت ها استفاده میشود. سینتکس تابع dir به شکل زیر است:

dir(object)

همینطور که مشخص است تابع dir یک آبجکت به عنوان پارامتر گرفته و در خروجی لیست تمام attribute ها را نمایش میدهد. به مثال زیر دقت کنید:

>>> num = 12
>>> dir(num)
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']

در مثال بالا عدد 12 را در متغیر num ذخیره کردیم و بعد با استفاده از تابع dir پایتون به تمام توابع و ویژگی های متغیر num دسترسی پیدا کردیم. شما میتوانید هر نوع آبجکتی را به تابع dir ارسال کنید. در مثال زیر چند نمونه را میتوانید ببیند:

>>> dir([1, 2, 3])
>>> dir({'name':'amir', 'age':12})

همچنین میتوانید آبجکت هایی که توسط کاربر ساخته شده اند را هم به تابع dir ارسال کنید. در مثال زیر یک کلاس به نام Person ایجاد کرده ایم:

class Person:
    def show(self):
        print('Hello..!')

شما میتوانید کلاسی که ساخته اید را در dir استفاده کنید:

>>> dir(Person)
['__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__', 'name']

در نتیجه مشاهده میکنید که تمام ویژگی ها و متدهای کلاس Person از جمله متد name که خودمان ایجاد کرده بودیم در خروجی وجود دارد.

مطالب مشابه



مونگارد