إذا تم إعطائك مكتبة أو حزمة بايثون جديدة ولا تعرف كبف تعمل هذه الأخيرة كيف تتعامل مع هذه المشكلة ؟
ربما ستكون إجابتك : سأبحث عنها في قوقل لأرى أي توثيق خاص بها .
ولكن ماذا ستكون إجابتك إذا قلت لك أنه لا يوجد إتصال بالأنترنيت .
ستقول لي سأقرا الكود جيدا ليمكنني رؤية ماذا يمكنني التعلم منه ولكن ليس هذا مانبحث عنه .
نظام المساعدة لبايثون عبر الأنترنيت
يحتوي بايثون على نظام مساعدة مدمج مرتكز على وحدة pydoc قم بفتح الطرفية وأكتب الأمر التالي :
pydoc os
وستظهر شاشة المساعدة على الشاشة
NAME os - OS routines for NT or Posix depending on what system we're on. FILE /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/os.py MODULE DOCS http://docs.python.org/library/os DESCRIPTION This exports: - all functions from posix, nt, os2, or ce, e.g. unlink, stat, etc. - os.path is one of the modules posixpath, or ntpath ...
الشيء الجميل هو أنك تستطيع تصفح دليل المساعدة عبر المتصفح أيضا وليس فقط على الطرفية ويمكنك تشغيل السيرفر المحلي الذي سيقوم بخدمة دليل المساعدة عبر صفحات HTML عبر الأمر التالي :
pydoc -p 8000
http://localhost:8000
وستجد الصفحة الرئيسية مع مجموعة الروابط لصفحات المساعدة لجميع المكتبات والحزم المثبة على جهازك
الحصول على المساعدة في IDLE
يمكنك الوصول إلى نفس المساعدة على IDLE بإستخدام الوظيفة المدمجة help
>>> import os >>> help(os) ...
أحيانا لا ترغب في عرض النص الكامل للمساعدة ولكن تريد التعرف على مميزات كائن ما فقط حتى تستطيع إستخدامها في الكود وهنا يأتي دور الأمر dir
.
يعمل هذا الأمر في موضعين ، الأول عندما يتم تنفيذه بدون أي مدخلات وفي هذه الحالة سيقوم بعرض قائمة الأسماء المعرفة في النطاق المحلي
>>> dir() ['__builtins__', '__doc__', '__name__', '__package__'] >>> nums = range(10) >>> dir() ['__builtins__', '__doc__', '__name__', '__package__', 'nums']
أما الوضع الثاني عندما نقوم بتعيين مدخلات عبارة عن كائنات حيث ستحاول عرض قائمة بالمميزات الذات الصلة لذلك الكائن وهذا يعتمد أيضا حول إذا ما كان الكائن وحدة أو كلاس .
فإذا كان الكائن عبارة عن وحدة فإن dir ستقوم بعرض قائمة بمميزات هذه الوحدة وأما إذا كان عبارة عن كلاس فستقوم بعرض قائمة بمميزات الكلاس .
>>> import os >>> dir(os) ['EX_CANTCREAT', 'EX_CONFIG', ... , 'write'] >>> class MyObject(object): def __dir__(self): return ["foo", "bar", "baz"] >>> m = MyObject() >>> dir(m) ['bar', 'baz', 'foo']