2017-02-17 73 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作爲參數。

相關問題