在Python中从回调返回值
我目前正在尝试在Python中使用回调 我想做的是从回调中返回一个值,然后使用这个返回值进行条件处理。例如,如果用户输入“Y”,我想在控制台上打印一些东西 由于我是Python新手,下面的代码是我目前能得到的最接近的代码,但是: a) 我不确定这是否是蟒蛇式的方法 b) 正确的做法是什么在Python中从回调返回值,python,Python,我目前正在尝试在Python中使用回调 我想做的是从回调中返回一个值,然后使用这个返回值进行条件处理。例如,如果用户输入“Y”,我想在控制台上打印一些东西 由于我是Python新手,下面的代码是我目前能得到的最接近的代码,但是: a) 我不确定这是否是蟒蛇式的方法 b) 正确的做法是什么 class Observable: def subscribe(self,callback): self.callback = callback
class Observable:
def subscribe(self,callback):
self.callback = callback
def fire(self):
self.callback()
class CallBackStuff:
def doCallback(self):
userInput = raw_input("Please enter Y or N?")
return userInput
if __name__ == '__main__':
s = CallBackStuff()
o = Observable()
o.subscribe(s.doCallback)
t = o.fire()
print t
我能想到的在代码中实现这一点的最简单方法就是将输入存储为
CallBackStuff
对象中的变量。然后在调用callback函数之后,就可以从CallBackStuff
实例访问输入数据。下面的例子
class Observable:
def subscribe(self,callback):
self.callback = callback
def fire(self):
self.callback()
class CallBackStuff:
storedInput = None # Class member to store the input
def doCallback(self):
self.storedInput = raw_input("Please enter Y or N?")
if __name__ == '__main__':
s = CallBackStuff()
o = Observable()
o.subscribe(s.doCallback)
o.fire()
print s.storedInput # Print stored input from call-back object
为什么不直接返回self.callback()?@GamesBrainiac相关但没有返回值think@BartoszKP你说得对。
class Observable:
def subscribe(self,callback):
self.callback = callback
def fire(self):
self.callback()
class CallBackStuff:
storedInput = None # Class member to store the input
def doCallback(self):
self.storedInput = raw_input("Please enter Y or N?")
if __name__ == '__main__':
s = CallBackStuff()
o = Observable()
o.subscribe(s.doCallback)
o.fire()
print s.storedInput # Print stored input from call-back object