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

我正在编写一个Python程序,该程序响应请求并将响应声音反馈给用户。下面是两个函数的示例。我如何在不使用全局变量的情况下执行此操作,并且仍然返回一个非重复的随机响应

# 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结果
作为参数