如何实现只有一层访问权限的python模块

2024-05-16 12:15:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我想实现一个python模块,不需要多个名称空间层就可以导入它。例如,我想创建一个可以使用的模块,如下所示:

import sound

sound.echofilter(args...)
sound.reversefilter(args...)

在我看到的示例和文档中,我看不到如何做到这一点。来自documentation的示例如下:

sound/                          Top-level package
      __init__.py               Initialize the sound package
      effects/                  Subpackage for sound effects
              __init__.py
              echo.py

这需要

import sound.effects.echo
sound.effects.echo.echofilter(args...)

虽然我可以跳过外部包和内部包(声音和效果),只需要一层目录,但我仍然在函数前面有一层额外的文件,例如:

sound.echo.echofilter(args...)
sound.echo.reversefilter(args...)

或者,我可以只拥有一个文件sound.py,其中echofilterreversefilter都在其中实现,并且没有任何目录。但是,为了组织代码,最好将它们放在单独的文件和目录中

一层名称空间就可以吗


Tags: 模块文件pyimportecho目录名称示例