有人知道怎么做吗?
我正在尝试获取函数的返回值..但我不希望该函数再次运行。它的语音识别,因此,每次再次运行时,它会尝试查看用户说的内容。我只需要保存变量。
顺便说一句,我也不能使用全局变量。
编辑:
def voiceRecognition(self):
<A bunch of voice recognition stuff here>
return whatUserSaid
我称之为的代码:
SPEECH.voiceRecognition()
SPEECH和self的原因是b / c它是类的一部分,我在不同的Python文件中调用它。现在它正在工作......我只需要返回变量whatUserSaid,而不是让函数重新运行它为了获取值所做的事情。
答案 0 :(得分:1)
从您给定的代码中,您似乎已将其构建到一个类中,因此我将对此进行一些假设。
class VoiceRecognizer(object):
def __init__(self, *args, **kwargs):
self.last_phrase = None
def voiceRecognition(self):
# your code here
self.last_phrase = whatUserSaid
return whatUserSaid
这应该让你这样做:
v = VoiceRecognizer()
v.voiceRecognition()
v.last_phrase # is the last return of voiceRecognition
但我不确定你为什么要这样做。你不能把它保存到一个变量吗?
last_phrase = v.voiceRecognition() # like this?
答案 1 :(得分:1)
您可以使用类实例并记住该值。
class VoiceRecognizer():
def __init__(self):
self._parsed = {}
def recognize(self, speech):
key = function_to_turn_speech_into_unique_string(speech)
if key not in self._parsed:
self._parsed[key] = recognize_function(speech)
return self._parsed[key]
recognizer = VoiceRecognizer()
recognizer.recognize(speechA) # will compute
recognizer.recognize(speechA) # will use cache
recognizer.recognize(speechB) # will compute if speechA == speechB