📝 ملخص الصفحة
📚 دالة `dir()` في بايثون
المفاهيم الأساسية
دالة `dir()`: دالة مفيدة لمعرفة محتويات النموذج البرمجي (أو أي كائن). يتم استدعاؤها على أي كائن لمعرفة الإجراءات (الخصائص والطرق) التي يدعمها.
خريطة المفاهيم
```markmap
المكتبات والنماذج البرمجية في بايثون
مفهوم النموذج البرمجي
تعريف
- حزمة ملفات تحتوي مقاطع برمجية
- امتدادها .py
- يتم استيرادها لتنفيذ وظائف
مصادر النماذج
المكتبة القياسية (Standard library)
#### تعريف
- تُثبَّت تلقائياً مع بايثون
- جزء أساسي من اللغة
- تحتوي على أكثر من 200 نموذج برمجي
#### خصائصها
- واسعة وغنية
- تحتوي على نماذج مكتوبة بلغة C للوصول لوظائف النظام
- تقدم حلولاً قياسية للعديد من المشكلات البرمجية
#### طرق الاستيراد
##### 1. استيراد الكل
- الأمر: `from module_name import *`
- المميزات
- توفير وقت الكتابة
- مفيد عند استخدام الكثير من الدوال
- مفيد عند نسيان النموذج البرمجي للدالة
- زيادة حجم البرنامج النهائي دون سبب
- زيادة أعباء الصيانة والأمن
##### 2. استيراد دوال من نموذج برمجي
- الأمر: `from module_name import function_a, function_b, function_c`
- الاستدعاء: `function_a()`
##### 3. استيراد النماذج البرمجية
- الأمر: `import module_name`
- الاستدعاء: `module_name.function_name()`
##### أمثلة على نماذجها
###### datetime
- datetime.date.today()
- datetime.time()
###### queue
- queue.put()
- queue.full()
- queue.empty()
###### math
- math.pi()
- math.sin()
- math.log()
- math.pow()
###### sys
- الهدف: معرفة معلومات عن النظام ومشغل بايثون
- طريقة الاستيراد: `import sys`
- أمثلة على استخدامه:
- `sys.version`: يعرض نسخة بايثون المستخدمة
- `sys.path`: يعرض مسار تخزين جميع النماذج القياسية
- `sys.platform`: دالة جديدة تعرض نظام التشغيل المستخدم (مثال: 'win32')
###### os
- الهدف: التفاعل مع نظام التشغيل تلقائياً
- طريقة الاستيراد: `import os`
- أمثلة على استخدامه:
- `os.getcwd()`:
دالة جديدة تعرض مسار المجلد الحالي للعمل (المجلد الذي يحفظ فيه ملف المقطع البرمجي)
- إنشاء مجلد وإزالته
- جلب محتويات مجلد
- تغيير المسار الحالي أو تحديده
- استخدام `chdir()` للتنقل
- تغيير المسار إلى مجلد جديد: `os.chdir("مسار_جديد")`
- العودة للمسار الأصلي: `os.chdir("..\\")`
- استخدام `listdir()` لعرض المحتويات
- عرض أسماء الملفات والمجلدات: `os.listdir()`
- استخدام `dir()` لاستكشاف النموذج
- الهدف: عرض جميع وظائف وخصائص وحدة `os`
- طريقة الاستخدام: `print(dir(os))`
- المخرجات: قائمة طويلة بأسماء الدوال والثوابت (مثل: `'F_OK'`, `'_access'`, `'_chdir'`, `'_environ'`)
مكتبات مجتمع المطورين
#### المكتبات الإضافية
- يمكن تنزيلها وتثبيتها بسهولة
- تأتي بأدوات تثبيت خاصة
- تتصرف مثل المكتبة القياسية بعد التثبيت
أمثلة على النماذج القياسية
tkinter module
Platform module
turtle module
openpyxl module
أهمية النماذج البرمجية
إعادة استخدام المقطع البرمجي
تنظيم المشروعات وتقسيمها
العلاقة الهرمية
المكتبة القياسية
#### تحتوي على
النماذج البرمجية
#### تحتوي على
الدوال
معلومة
بعض النماذج متوفرة في جميع الإصدارات
بعضها يتطلب دعم النظام أو تثبيت
مكتبات بايثون الخارجية
- مكتبات إضافية غير مثبتة في بايثون
- تحتاج إلى استيرادها للبرنامج
دالة `dir()` العامة
- الهدف: معرفة محتويات أي كائن (ليس المكتبات فقط)
- نطاق الاستخدام:
- الكائنات (Classes)
- الدوال (Functions)
- أنواع البيانات (النصوص، الأرقام)
```
نقاط مهمة
- دالة `dir()` هي أداة استكشافية لمعرفة ما يحتويه أي كائن في بايثون.
- لاستخدامها مع نموذج `os`، يجب أولاً استيراده: `import os`.
- الأمر `print(dir(os))` يعرض قائمة بجميع الدوال والخصائص المتاحة داخل وحدة `os`.
- الدالة ليست حصرية على المكتبات، بل تعمل مع جميع أنواع كائنات بايثون.
📋 المحتوى المنظم
📖 محتوى تعليمي مفصّل
3. نموذج (dir (os))
نوع: محتوى تعليمي
إحدى الدوال المفيدة لمعرفة محتويات النموذج البرمجي هي دالة dir، يمكنك استدعاءها على أي كائن لمعرفة الإجراءات التي تدعمها، ولكنها مفيدة بشكل خاص مع النموذج البرمجي.
نوع: محتوى تعليمي
على سبيل المثال، يمكنك عرض جميع وظائف وحدة التشغيل os على الشاشة كقائمة.
استورد نموذج os
نوع: محتوى تعليمي
import os
اعرض جميع دوال نموذج os البرمجي
نوع: محتوى تعليمي
print(dir(os))
هذه الدالة التي استخدمتها في المثال السابق.
نوع: محتوى تعليمي
هذه الدالة التي استخدمتها في المثال السابق.
الكائن الذي تريد رؤية كل خصائصه وطرقـه.
نوع: محتوى تعليمي
الكائن الذي تريد رؤية كل خصائصه وطرقـه.
نوع: محتوى تعليمي
['F_OK', '_O_APPEND', '_O_BINARY', '_O_CREAT', '_O_EXCL', '_O_NOINHERIT', '_O_RANDOM', '_O_RDONLY', '_O_RDWR', '_O_SEQUENTIAL', '_O_SHORT_LIVED', '_O_TEMPORARY', '_O_TEXT', '_O_TRUNC', '_O_WRONLY', '_P_DETACH', '_P_NOWAIT', '_P_NOWAITO', '_P_OVERLAY', '_P_WAIT', '_R_OK', '_SEEK_CUR', '_SEEK_END', '_SEEK_SET', '_TMP_MAX', '_UserDict', '_W_OK', '_X_OK', '_', '__all__', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '__copy_reg__', '__execvpe__', '__exists__', '__exit__', '__get_exports_list__', '__make_stat_result__', '__make_statvfs_result__', '_pickle_stat_result', '_pickle_statvfs_result', '_abort', '_access', '_altsep', '_chdir', '_chmod', '_close', '_closerange', '_curdir', '_defpath', '_devnull', '_dup', '_dup2', '_environ', '_errno', '_error', '_exec', '_execl', '_excle', '_execlp', '_execv', '_execve', '_execvp', '_extsep', '_fdopen', '_fstat', '_fstatcwd', '_getcwdu', '_getenv', '_getpid', '_isatty', '_kill', '_linesep', '_listdir', '_lseek', '_lstat', '_makedirs', '_mkdir', '_name', '_open', '_pardir', '_path', '_pathsep', '_pipe', '_popen', '_popen2', '_popen3', '_popen4', '_putenv', '_read', '_remove', '_removedirs', '_rename', '_rmdir', '_sep', '_spawn', '_spawnle', '_spawnve', '_spawnvl', '_spawnvpe', '_startfile', '_stat', '_stat_', '_statvfs_result', '_strerror', '_sys', '_system', '_tempnam', '_times', '_tmpfile', '_tmpnam', '_umask', '_unlink', '_unsetenv', '_urandom', '_utime', '_waitpid', '_walk', '_write']
نوع: METADATA
وزارة التعليم
Ministry of Education
2025 - 1447
157
معلومة
نوع: محتوى تعليمي
دالة dir ليست مفيدة للمكتبات فقط، بل يمكن استخدامها مع جميع كائنات بايثون، مثل الكائنات (classes) والدوال (functions)، كما أنها تدعم أنواع البيانات من النصوص والأرقام.
📄 النص الكامل للصفحة
--- SECTION: 3. نموذج (dir (os)) ---
إحدى الدوال المفيدة لمعرفة محتويات النموذج البرمجي هي دالة dir، يمكنك استدعاءها على أي كائن لمعرفة الإجراءات التي تدعمها، ولكنها مفيدة بشكل خاص مع النموذج البرمجي.
على سبيل المثال، يمكنك عرض جميع وظائف وحدة التشغيل os على الشاشة كقائمة.
--- SECTION: استورد نموذج os ---
import os
--- SECTION: اعرض جميع دوال نموذج os البرمجي ---
print(dir(os))
--- SECTION: هذه الدالة التي استخدمتها في المثال السابق. ---
هذه الدالة التي استخدمتها في المثال السابق.
--- SECTION: الكائن الذي تريد رؤية كل خصائصه وطرقـه. ---
الكائن الذي تريد رؤية كل خصائصه وطرقـه.
['F_OK', '_O_APPEND', '_O_BINARY', '_O_CREAT', '_O_EXCL', '_O_NOINHERIT', '_O_RANDOM', '_O_RDONLY', '_O_RDWR', '_O_SEQUENTIAL', '_O_SHORT_LIVED', '_O_TEMPORARY', '_O_TEXT', '_O_TRUNC', '_O_WRONLY', '_P_DETACH', '_P_NOWAIT', '_P_NOWAITO', '_P_OVERLAY', '_P_WAIT', '_R_OK', '_SEEK_CUR', '_SEEK_END', '_SEEK_SET', '_TMP_MAX', '_UserDict', '_W_OK', '_X_OK', '_', '__all__', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '__copy_reg__', '__execvpe__', '__exists__', '__exit__', '__get_exports_list__', '__make_stat_result__', '__make_statvfs_result__', '_pickle_stat_result', '_pickle_statvfs_result', '_abort', '_access', '_altsep', '_chdir', '_chmod', '_close', '_closerange', '_curdir', '_defpath', '_devnull', '_dup', '_dup2', '_environ', '_errno', '_error', '_exec', '_execl', '_excle', '_execlp', '_execv', '_execve', '_execvp', '_extsep', '_fdopen', '_fstat', '_fstatcwd', '_getcwdu', '_getenv', '_getpid', '_isatty', '_kill', '_linesep', '_listdir', '_lseek', '_lstat', '_makedirs', '_mkdir', '_name', '_open', '_pardir', '_path', '_pathsep', '_pipe', '_popen', '_popen2', '_popen3', '_popen4', '_putenv', '_read', '_remove', '_removedirs', '_rename', '_rmdir', '_sep', '_spawn', '_spawnle', '_spawnve', '_spawnvl', '_spawnvpe', '_startfile', '_stat', '_stat_', '_statvfs_result', '_strerror', '_sys', '_system', '_tempnam', '_times', '_tmpfile', '_tmpnam', '_umask', '_unlink', '_unsetenv', '_urandom', '_utime', '_waitpid', '_walk', '_write']
وزارة التعليم
Ministry of Education
2025 - 1447
157
--- SECTION: معلومة ---
دالة dir ليست مفيدة للمكتبات فقط، بل يمكن استخدامها مع جميع كائنات بايثون، مثل الكائنات (classes) والدوال (functions)، كما أنها تدعم أنواع البيانات من النصوص والأرقام.