Python 从另一个类中的函数获取返回
我想得到一个返回值,它会由于触发的事件而更改该值。 像这样: 之所以使用while,是因为我需要在服务器中动态地使用这两个值。 但直到现在,类B中的my valueFromA仍然为0,无论是否触发。似乎在对象的另一个实例上调用了Python 从另一个类中的函数获取返回,python,Python,我想得到一个返回值,它会由于触发的事件而更改该值。 像这样: 之所以使用while,是因为我需要在服务器中动态地使用这两个值。 但直到现在,类B中的my valueFromA仍然为0,无论是否触发。似乎在对象的另一个实例上调用了.logic(),而不是试图从中检索值的实例。要从同一实例检索该值,可以将其作为变量传递到另一个类的作用域中。有关更多信息,请查看 下面,我写了一个如何实现这一点的小例子: class A: def __init__(self): self.ev_nearby
.logic()
,而不是试图从中检索值的实例。要从同一实例检索该值,可以将其作为变量传递到另一个类的作用域中。有关更多信息,请查看
下面,我写了一个如何实现这一点的小例子:
class A:
def __init__(self):
self.ev_nearby = 0
def changeValue(self):
self.ev_nearby = 1
return self.ev_nearby
# I want this value in class B
def getChangedValue(self):
return self.ev_nearby
def logic(self):
while(somethingHappens) {
self.changeValue()
}
# logic is called in another class
class B:
# I want the value here like
def getValueFromA(self, A):
valueFromA = A.getChangedValue()
return valueFromA
class C:
A = A()
A.logic()
B = B()
B.getValueFromA(A)
这里
class B:A=A()#我希望这里的值像valueFromA=A.getChangedValue(self)
您不必将“self”作为A.getChangedValue的参数,您是否执行了方法来更改此值?在示例中,我找不到它的使用位置。在我看来,“self”调用“A.getChangedValue(self)”是不必要的。@Ghorich-okey,那么我如何在同一个实例上调用它呢?因为@Ghorich注意到负责更改值的逻辑在其他类/实例中使用。在类B中使用此逻辑或使变量全局(?)无论如何,A=A()至少是一种反模式:将类隐藏在同名对象后面。不要。不要这样。我看到你的答案有点晚了,但是根据上面的建议,我已经完全解决了这个问题!现在它工作得很好。谢谢!:-)
class A:
def __init__(self):
self.ev_nearby = 0
def changeValue(self):
self.ev_nearby = 1
return self.ev_nearby
# I want this value in class B
def getChangedValue(self):
return self.ev_nearby
def logic(self):
while(somethingHappens) {
self.changeValue()
}
# logic is called in another class
class B:
# I want the value here like
def getValueFromA(self, A):
valueFromA = A.getChangedValue()
return valueFromA
class C:
A = A()
A.logic()
B = B()
B.getValueFromA(A)