gpt4 book ai didi

Python:导入 * 只从包中导入某些东西?

转载 作者:行者123 更新时间:2023-12-04 16:50:37 29 4
gpt4 key购买 nike

我有一个名为 elements 的包,其中包含按钮、trifader、海报等内容。在 Button 类中,我正在执行 from elements import *

这执行正常,当我尝试 print(poster) 时,也可以正常运行并按预期运行。但是,当我执行 print(trifader) 时,NameError: name 'trifader' is not defined。即使trifader和poster在同一个包中,也定义了poster,但trifader不是吗?多么奇怪。对此有什么解释吗?

elements包的目录结构是这样的:

Elements:
__init__.py
trifader.py
button.py
poster.py

此外,还有其他一些不太相关的内容。

每个 .py 文件都包含一个以 .py 名称命名的类,例如,trifader.py 有一个名为 TriFader 的类。

最佳答案

如果您的 __init__.py 没有定义 __all__(因此限制了使用 from X import * 导入的内容),那么您可能在某个地方有一个循环 import 导致模块在其定义被评估之前被引用。

关于Python:导入 * 只从包中导入某些东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13280916/

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