A Byte of Python

الدالة ‭dir()‬

يمكنك استخدام الدالة المدمجة dir لسرد المعرفات تحددها الوحدة. هذه المعرفات هي الدوال، والمتغيرات، والفئات المعرفة في الوحدة.

عند إعطاء اسم وحدة للدالة dir()، فإنها تعيد لنا قائمة الأسماء المعرفة في تلك الوحدة. وعند عدم إعطائها أية معطيات فإنها تعيد لنا قائمة بالأسماء المعرفة في الوحدة الحالية.

استخدام الدالة dir

مثال 8.4. استخدام الدالة dir

$ python
>>> import sys
>>> dir(sys) # get list of attributes for sys module
['__displayhook__', '__doc__', '__excepthook__', '__name__', '__stderr__',
'__stdin__', '__stdout__', '_getframe', 'api_version', 'argv',
'builtin_module_names', 'byteorder', 'call_tracing', 'callstats',
'copyright', 'displayhook', 'exc_clear', 'exc_info', 'exc_type',
'excepthook', 'exec_prefix', 'executable', 'exit', 'getcheckinterval',
'getdefaultencoding', 'getdlopenflags', 'getfilesystemencoding',
'getrecursionlimit', 'getrefcount', 'hexversion', 'maxint', 'maxunicode',
'meta_path','modules', 'path', 'path_hooks', 'path_importer_cache',
'platform', 'prefix', 'ps1', 'ps2', 'setcheckinterval', 'setdlopenflags',
'setprofile', 'setrecursionlimit', 'settrace', 'stderr', 'stdin', 'stdout',
'version', 'version_info', 'warnoptions']
>>> dir() # get list of attributes for current module
['__builtins__', '__doc__', '__name__', 'sys']
>>>
>>> a = 5 # create a new variable 'a'
>>> dir()
['__builtins__', '__doc__', '__name__', 'a', 'sys']
>>>
>>> del a # delete/remove a name
>>>
>>> dir()
['__builtins__', '__doc__', '__name__', 'sys']
>>>
				

كيف يعمل

أولا، نرى استخدام الدالة dir مع الوحدة المستوردة sys. نستطيع أن نرى قائمة ضخمة من العناصر المشتملة عليها.

بعدها قمنا باستخدام الدالة dir بدون تمرير أي معاملات إليها لذا فهي تعيد إلينا قائمة العناصر المنتمية للوحدة الحالية. لاحظ أن قائمة الوحدات المستوردة جزء من هذه القائمة أيضا.

ومن أجل ملاحظة dir وهي تعمل، قمنا بتعريف متغير جديد a وأسندنا إليه قيمة وبعدها نقوم بفحص dir وسنلاحظ أن هناك قيمة مضافة إلى القائمة بنفس الاسم. نقوم بحذف خصائص/متغيرات الوحدة الحالية باستخدام إفادة del وسوف ينعكس هذا التغير مرة أخرى في خرْج الدالة dir.

ملاحظة على del: تستخدم هذه الإفادة لحذف اسم أو متغير وبعد تشغيل الإفادة -وهي في هذه الحالة del a- لا يعود بإمكاننا الوصول إلى المتغير a؛ وكأنه لم يكن موجودا من قبل.