避免将文件和文件夹名称添加到模块的命名空间

问题描述 投票:0回答:1

有没有办法避免将文件和文件夹名称添加到模块的命名空间中?具有以下结构:

├── 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
不会出现在模块的命名空间中?

python import module subdirectory
1个回答
0
投票

您可以按照

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']
© www.soinside.com 2019 - 2024. All rights reserved.