Python 从函数内的列表返回非重复的随机结果
我正在编写一个Python程序,该程序响应请求并将响应声音反馈给用户。下面是两个函数的示例。我如何在不使用全局变量的情况下执行此操作,并且仍然返回一个非重复的随机响应Python 从函数内的列表返回非重复的随机结果,python,Python,我正在编写一个Python程序,该程序响应请求并将响应声音反馈给用户。下面是两个函数的示例。我如何在不使用全局变量的情况下执行此操作,并且仍然返回一个非重复的随机响应 # stores prior response website_result = 'first_response.wav' def launch_website(): # if service is offline return with default msg otherwise launch service
# stores prior response
website_result = 'first_response.wav'
def launch_website():
# if service is offline return with default msg otherwise launch service
if is_connected() == 'FALSE':
arg = 'this_service_is_offline.wav'
return arg
else:
site = 'http://www.somesite.com'
launch_it(site)
return launch_website_response()
def launch_website_response():
# using the global variable inside function
global website_result
# possible responses
RESPONSES = ['first_response.wav', 'second_response.wav', 'third_response.wav']
# ensures a non-repeating response
tmp = random.choice(RESPONSES)
while website_result == tmp:
tmp = random.choice(RESPONSES)
website_result = tmp
return website_result
您的
website\u结果
变量表示您需要某种持久状态。也许你可以考虑把它存储在一个文本文件中,每次你需要它时就访问它,然后再修改它(如果你不需要对它调用太多,那么你就可以进入I/O限制)。
我不知道您的应用程序的具体情况,但您也可以按照@JGut的建议,让您的两个函数将
website\u result
作为参数。请检查缩进并格式化代码,也许只有launch\u website\u response()
接受网站\u结果
作为参数