gpt4 book ai didi

python - 从 Python 中的回调返回值

转载 作者:太空宇宙 更新时间:2023-11-03 18:45:39 28 4
gpt4 key购买 nike

我目前正在尝试在 Python 中使用回调。

我想做的是从回调中返回一个值,然后使用这个返回值进行条件处理。例如,如果用户输入“Y”,我想在控制台上打印一些内容。

由于我是 Python 新手,下面的代码是我目前所能得到的最接近的代码,但是:

a) 我不确定这是否是 Pythonic 的做法

b) 正确的做法是什么?

    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 对象中的变量。然后,在调用回调函数后,您只需从 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

关于python - 从 Python 中的回调返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19585935/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com