无法访问 parent class (python) 中的全局变量

Cannot access global variable inside a parent class (python)

所以我有这段代码(file_1.py中的parentclass:

class do_something():    
    def __init__(self, day, month, year):
        self.day = day
        self.month = month
        self.year = year
        
    def set_message(self, s): 
        global var_1_global
        self.var_1 = var_1_global 

由 child class 继承(在 file_2.py 中),如下所示:

from file_1 import do_something
var_1_global = ""

class child_do_something(...,do_something,..):
    ...

代码比较大,但是我没法放到Whosebug里。我只放了关键代码。所以我得到的错误是:

NameError: name 'var_1_global ' is not defined

并显示 parent class (file_1.py) 中的行,更具体地说:

self.var_1 = var_1_global 

我已经搜索并找到了这个: 这没有帮助。知道我在这里遗漏了什么以及如何解决它吗?

如果 var_1_global 定义在 file_1.py。此处您的 global var_1_global 语句无效 因为 var_1_global 不在您的全局范围内。既然属于 您必须从 file_2.

导入另一个文件

但是由于 file_2 已经从 file_1 导入了 do_something 顶层。放这个:

from file_2 import var_1_global

file_1 的顶层将导致循环导入。 因此,您必须在方法 set_message 中执行此导入以 避免那个循环问题。因此,一个解决方案是更改:

    def set_message(self, s): 
        global var_1_global
        self.var_1 = var_1_global

作者:

    def set_message(self, s): 
        from file_2 import var_1_global
        self.var_1 = var_1_global