【发布时间】:2022-01-17 10:03:50
【问题描述】:
我想在另一个class B 中从class A 调用一个函数。但是,应该为A 的对象调用它。我的意思是,如果我有这样的事情:
class A:
def __init__(self, ....):
self.valuechanged=False
# do something
objectfromb=B()
self.somearray.append(objectfromb)
def updateevent(self):
self.valuechanged=True
# do some things if update event triggered
class B:
def __init__(self,...):
self.somevalue=0
self.someothervalue=1
# do something
def updatesomevalue(self,somenewvalue):
self.somevalue=somenewvalue
# !!! HERE SHOULD BE A CALL TO CLASS A FUNCTION updateevent
在我的代码中,我使用这样的类:
a=A()
然后我将在 (a.somearray) 中有一个列表 somearray,其中包含 B 的对象。所以如果我想更新这个对象B:
a.somearray[0].updatesomevalue(10)
那么不仅a.somearray[0].somevalue 应该有一个新值,而且A 类的函数更新事件应该触发更改a。我该怎么做?
【问题讨论】:
-
请注意
somearray是类属性,可变列表并在A 类的所有实例之间共享,即如果您更改一个实例,它将在所有实例中更新。我不知道这是不是故意的。
标签: python function class events handle