Ich schreibe ein Python-Programm, das auf eine Anfrage antwortet und eine Antwort an den Benutzer vokalisiert. Im Folgenden finden Sie ein Beispiel für zwei Funktionen. Wie kann ich dies tun, ohne eine globale Variable zu verwenden und immer noch eine sich nicht wiederholende, zufällige Antwort zu erhalten?Gibt ein sich nicht wiederholendes, zufälliges Ergebnis aus einer Liste innerhalb einer Funktion zurück
# 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
Bitte überprüfen Sie die Einrückung und formatieren Sie den Code –
Vielleicht haben Sie nur 'launch_website_response()' nehmen 'website_result' als Argument – JGut