NGu*_*yen 1 python random function python-3.x
我想用随机顺序运行函数.它看起来像"shuffle"函数,它会改变变量列表.
输入:
def a():
print('a')
def b():
print('b')
def c():
print('c')
shuffle([a,b,c])
Run Code Online (Sandbox Code Playgroud)
这是我想要的输出:
a
b
c
Run Code Online (Sandbox Code Playgroud)
要么
a
c
b
Run Code Online (Sandbox Code Playgroud)
要么
c
b
a
Run Code Online (Sandbox Code Playgroud)
或者等如何以随机顺序运行函数?
random.shuffle是一个就地操作.因此,您需要单独保留列表并将其随机播放.
functions = [a, b, c]
shuffle(functions)
Run Code Online (Sandbox Code Playgroud)
现在,函数被洗牌,你只需要执行它们
for func in functions:
func()
Run Code Online (Sandbox Code Playgroud)
你可以把它存储在一个函数中并像这样做
def run_functions_in_random_order(*funcs):
functions = list(funcs)
shuffle(functions)
for func in functions:
func()
run_functions_in_random_order(a, b, c)
Run Code Online (Sandbox Code Playgroud)
或者你可以简单地使用闭包中的函数,就像这样
def run_functions_in_random_order(*funcs):
def run():
functions = list(funcs)
shuffle(functions)
for func in functions:
func()
return run
random_exec = run_functions_in_random_order(a, b, c)
random_exec()
random_exec()
random_exec()
Run Code Online (Sandbox Code Playgroud)