我试图理解如何使用__all__
来管理模块。例如,我有以下结构化代码:
main.py
|=> /database
|=> __init__.py
|=> engine (with variables engine, session, etc.)
现在,我希望可以直接从database
模块导入session
和engine
实例:
from database import session
我试着在
__init__.py
中添加行__all__ = ['session']
或__all__ = ['engine.session']
,但当我尝试导入时,我遇到了异常AttributeError: 'module' object has no attribute 'engine.session'
。有没有什么方法可以实现所需的行为?
__init__.py
中导入了所有必需的类/函数/变量,我就不需要担心填写__all__
- 我已经导入了所有需要的。那么,使用__all__
的原因是什么? - Alex G.P.__all__
жқҘж Үи®°е“ӘдәӣеҗҚз§°жҳҜвҖңеҸҜеҜје…Ҙзҡ„вҖқпјӣеҰӮжһңжңүдәәжү§иЎҢfrom database import *
пјҢеҲҷеҸӘдјҡеҜје…Ҙ__all__
дёӯеҲ—еҮәзҡ„еҗҚз§°пјҢиҖҢдёҚжҳҜжЁЎеқ—е‘ҪеҗҚз©әй—ҙдёӯзҡ„жүҖжңүеҗҚз§°гҖӮ - Martijn Pieters