有没有办法避免将文件和文件夹名称添加到模块的命名空间中?具有以下结构:
├── pkg
│ ├── __init__.py
│ ├── folder
│ │ └── func2.py
│ └── func1.py
__init__.py
:
from .func1 import a
from .folder.func2 import b
然后导入
>>> import pkg
>>> dir(pkg)
['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__',
'__package__', '__path__', '__spec__', 'a', 'b', 'folder', 'func1']
有没有办法设置项目,使
folder
和 func1
不会出现在模块的命名空间中?
您可以按照
https://stackoverflow.com/a/32234323/16173463将以下内容添加到您的
__init__.py
:
del folder
del func1
结果:
>>> import pkg
>>> dir(pkg)
['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__', 'a', 'b']