gpt4 book ai didi

python - 自动加载子模块时出现 NameError

转载 作者:太空宇宙 更新时间:2023-11-04 10:16:32 25 4
gpt4 key购买 nike

我有类似 this 的包结构:

sound/
├── effects
│   ├── echo.py
│   ├── __init__.py
│   └── reverse.py
├── formats
│   ├── __init__.py
│   ├── waveread.py
│   └── wavewrite.py
└── __init__.py

然后为了自动加载子模块 echoreverse 我将以下导入语句添加到我的 effects/__init__.py 文件中

from . import echo
from . import reverse

然而,在我导入 sound.effects 之后,我在尝试访问 echoreverse 时仍然遇到 NameError:

>>> import sound.effects
>>> echo
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'echo' is not defined
>>> reverse
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'reverse' is not defined

我错过了什么吗?

最佳答案

是的。您导入了 sound.effects,但这并没有将 effects 的内容带入您当前的命名空间。您仍然需要在它们所在的位置引用它们:sound.effects.echosound.effects.reverse

如果只想按名称引用它们,则需要导入这些名称:

from sound.effects import echo, reverse

关于python - 自动加载子模块时出现 NameError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35101791/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com