• 0

ما معنى __all__ في البايثون ؟

كلما أقرأ المزيد من الشيفرات البرمجية بلغة البايثون أجد أكثر فأكثر المتغير __all__ موجود في العديد من ملفات __init__.py. فما هي وظيفة هذا المتغير ؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

هذا المتغير يحتوي على قائمة من الكائنات العامة لتلك الوحدة، فتعتبر __all__ هي مجموعة من السلاسل النصية التي تحتوي على اسماء المتغيرات في الوحدة التي سيتم تصديرها عندما يتم استخدام from <module> import * في الوحدة.
فعلى سبيل المثال، الشيفرة البرمجية التالية في foo.py ستقوم بتصدير bab و baz:

__all__ = ['bab', 'baz']

waz = 5
bab = 10
def baz(): return 'baz'

ويمكنك استدعاء هذه المتغيرات مثل التالي:

from foo import *

print bab
print baz

# The following will trigger an exception, as "waz" is not exported by the module
print waz

يذكر أنه لا تعمل __all__ إلا عندما يتم استدعاؤها عن طريق from xxx import *

المصدر

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن