modules - all module in python



وحدة بيثون و__all__ (1)

أسماء الإدراج في __all__ لا، في حد ذاته، استيراد العناصر في وحدة نمطية. كل ما تفعله هو أسماء قائمة للاستيراد من تلك الوحدة إذا كنت تستخدم from database import * بناء الجملة.

استيراد session إلى database/__init__.py :

from .engine import session

أحاول أن نفهم كيفية إدارة وحدة نمطية مع __all . على سبيل المثال، لدي التعليمات البرمجية المنظمة التالية:

main.py
|=> /database
    |=> __init__.py
    |=> engine (with variables engine, session, etc.)

الآن أريد أن تكون قادرة على استيراد مثيلات session engine مباشرة من وحدة database مثل:

from database import session

حاولت إضافة سطر __all__ = ['session'] أو __all__ = ['engine.session'] إلى __init__py ولكن عندما أحاول القيام استيراد لقد حصلت على استثناء AttributeError: 'modile' object has not attribute 'engine.session' .

هل هناك أي طريقة لتحقيق السلوك المطلوب؟





module