2016-05-10 10 views
5

Supponiamo che io ho due funzioni:Come eseguire una funzione a caso in Python 2

functionA() e functionB()

Non mi interessa quale funzione viene eseguito, ma voglio solo uno di loro per eseguire randomly-- cioè, se eseguo lo script un centinaio di volte, entrambi dovrebbero essere riprodotti vicino a 50 volte.

Come posso programmarlo in Python 2?

risposta

3

In Python, le funzioni sono cittadini di prima classe in modo da poterle mettere in un elenco e quindi selezionare a caso uno di loro ad ogni giro con random.choice:

>>> import random 

>>> functions = [functionA, functionB] 
>>> for _ in range(100): 
...  function = random.choice(functions) 
...  function() 
+0

puntatori a funzione potrebbe valere la pena di una spiegazione qui – Ron

+1

@RonE Questi non sono puntatori di funzione. 'functionA' è un riferimento a un oggetto funzione. E la differenza è importante se vuoi una spiegazione vera. – viraptor

+0

Cosa succede invece di specificarlo esattamente per eseguire 100 volte in un ciclo for, per programmarlo per eseguire in modo casuale una o l'altra funzione ogni volta che viene chiamata? – Matt

Problemi correlati