python - Execute a function randomly -
consider next functions:
def a(): print "a" def b(): print "b" is there way pick function run randomly? tried using:
random.choice([a(),b()]) but returns both functions, want homecoming 1 function.
only phone call selected function, not both of them:
random.choice([a,b])() below demonstration:
>>> import random >>> def a(): ... print "a" ... >>> def b(): ... print "b" ... >>> random.choice([a,b])() >>> random.choice([a,b])() b >>> your old code called both functions when list [a(),b()] created, causing python print both a , b. afterwards, told random.choice take list [none, none]1, nothing. can see demonstration below:
>>> [a(),b()] b [none, none] >>> the new code uses random.choice randomly select function object list [a,b]:
>>> random.choice([a,b]) <function b @ 0x01afd970> >>> random.choice([a,b]) <function @ 0x01afd930> >>> it calls function.
1functions homecoming none default. since a , b lack return-statements, each homecoming none.
python function random
No comments:
Post a Comment