从另一个 Class 调用 Python 主 Class 实例而不使用全局

Call a Python Main Class Instance from Another Class Without Global

在下面的代码中,在 main() 中创建了 class A 的实例。我想从 class B 引用该实例,而不需要将 a 声明为 global。我怎样才能做到这一点? (注意 - 如果您 运行 这个脚本,然后 运行 第二次 global a 删除或注释掉,请确保在 [=22= 之前清除变量或重新启动内核] 宁它。否则,至少在 Spyder 中,脚本似乎 运行 OK。)

class A():
    
    def __init__(self):
        pass
    
    def start_the_process(self):
        self.b = B()
        self.b.add_values(2, 3)
        
    def print_result(self, result):
        print(result)

class B():
    
    def __init__(self):
        pass
    
    def add_values(self, val1, val2):    
        a.print_result(val1 + val2)
        
def main():
    global a
    a = A()
    a.start_the_process()

if __name__ == '__main__':
    main()

B class 应接收 A 对象作为参数,并将其保存为属性。

class A():
    
    def __init__(self):
        pass
    
    def start_the_process(self):
        self.b = B(self)
        self.b.add_values(2, 3)
        
    def print_result(self, result):
        print(result)

class B():
    
    def __init__(self, a):
        self.a = a
    
    def add_values(self, val1, val2):    
        self.a.print_result(val1 + val2)
        
def main():
    a = A()
    a.start_the_process()

if __name__ == '__main__':
    main()