2017-02-17 72 views
0

我正在编写一个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 
+0

请检查缩进并设置代码的格式 –

+0

也许只是''launch_website_response()'将'website_result'作为参数 – JGut

回答

0

website_result变量表示你有某种持久状态。也许你可以考虑将它存储在一个文本文件中,并在需要时随时访问它,并在之后进行更改(如果不需要进行太多的调用,这将起作用,否则会遇到I/O限制)。

我不知道您的应用程序的具体情况,但可能会发生这样的情况,您可以让@19G建议您的两个函数以website_result作为参数。

相关问题