从另一个 class 更改 class 参数

Changing class argument from a different class

我正在使用已经编写好的代码,这些代码被分成多个模块,具有不同的 classes。我必须从不同的模块连接两个 classes。 代码很长,所以我会尝试用一个简单的例子来解释我的问题。假设我有一个 mod1.pyClass1

class Class1(object):
    def __init__(self, name='Tim'):
        self.name = name

mod2.pyClass2

class Class2(object):
    def __init__(self, ...):
                ...
    my_name = 'Jack'
    new_class = Class1(name=my_name)
                ...
    my_name = 'Nic'

所以我的问题是,当 Class2 中的 my_name 发生变化时,我能否以某种方式改变 Class1 中的 self.name。我不想用新的 my_name 创建一个新的 class,但实际上是在 new_class 中更改它。 我希望我的例子和问题有意义。

Class1 对变量 my_name 一无所知;它只知道它接收到一个 'Jack',而不是该值的来源。

传递要存储在 Class2 实例中的 Class1 实例。然后 Class1 实例的任何修改都将在 Class2.

中可见
class Class2:
    def __init__(self, c):
        self.c = c

c1 = Class1("Jack")
c2 = Class2(c1)
c1.name = "Nic"
assert c2.c.name == "Nic"