Python Can';我不明白为什么导入全局变量可以运行程序,而无法进行测试

Python Can';我不明白为什么导入全局变量可以运行程序,而无法进行测试,python,testing,import,global,Python,Testing,Import,Global,问这个问题有点尴尬,因为我已经写了一段时间python,但显然我仍然不完全理解导入。我的目录如下所示(python 3.5,使用conda结构): 应用程序名称/ 应用程序名称/ 福比 副处长/ 巴比 测验/ 测试棒 在foo.py中,我有如下内容: class MyClass: def __init__(self, test): self.test = test global my_global my_global =

问这个问题有点尴尬,因为我已经写了一段时间python,但显然我仍然不完全理解导入。我的目录如下所示(python 3.5,使用conda结构):

  • 应用程序名称/
    • 应用程序名称/
      • 福比
      • 副处长/
        • 巴比
    • 测验/
      • 测试棒
在foo.py中,我有如下内容:

class MyClass:
    def __init__(self, test):
        self.test = test
        global my_global
        my_global = self.test
在bar.py中,我可以执行以下操作:
将app\u name.foo导入为foo\u bar
,然后在我的代码中,我可以毫无问题地运行
foo\u bar.my\u global

我不明白的是,为什么在我的test_bar.py中,当我测试文件'bar.py'并运行测试时,全局导入会给出一个属性错误。我错过了什么

至于错误:我运行'pytest_bar.py',下面是我得到的错误(来自ptest的堆栈跟踪,init在bar.py中):


一般来说,我不喜欢globals,最终会修复这个实现。但我想解释一下为什么会发生这样的事情还是有帮助的。如果您需要有关代码结构的更多详细信息,请告诉我。谢谢

实际的错误将大大有助于我们帮助您:)更令人尴尬的是,我没有添加错误!刚刚更新了问题
    def __init__(self, test):
>       self.baz = foo_bar.my_global
E       AttributeError: module 'app_name.foo' has no attribute 'my_global'

../app_name/sub_dir/bar.py:39: AttributeError