【发布时间】:2021-07-11 16:32:50
【问题描述】:
我正在使用我正在创建的 Python 打包获得很多乐趣。但是我有一个问题;
无法看到假定为全局的变量!这是文件
__init__.py
main.py
helpers.py
在 main.py 我有以下内容
from .helpers import *
class scene:
def __init__(self,variables):
self.variables = variables
global _scene
_scene = scene(100)
所以我正在制作一个应该可以全局访问的 _scene。但是这在 helpers.py 中不起作用;
from .main import *
print(_scene)
当我运行时出现错误: NameError: name '_scene' 未定义
我认为 init.py 很好
from .main import *
from .helpers import *
我错过了什么?希望您的意见!
【问题讨论】:
-
global 只影响使用它的文件。问题似乎是由于循环导入,基本上你从
helpers导入并运行模块,这意味着它将在之前运行打印任何东西都被定义了 -
谢谢@Matiiss!你会如何解决这个问题?不确定最佳做法是什么
-
global在全局范围内没有用,只是在告诉你使用全局的方法中使用 -
from X import *具有省略以下划线开头的名称的默认行为。这可以通过在导入的模块中放置一个__all__列表来覆盖,其中包含要包含的*的名称。或者只是专门导入想要的名称。
标签: python