使用随机函数(Python)
我在想,我们能在Python里做到这一点吗?假设我们有三个不同的函数来处理数据,像这样:
def main():
def process(data):
.....
def process1(data):
.....
def process2(data):
.....
def run():
test = choice([process,process1,process2])
test(data)
run()
main()
我们能随机选择一个函数来处理数据吗?如果可以,这样做合适吗?
谢谢!
4 个回答
1
只需要在Python中使用随机数模块就可以了。
random.choice(seq)
这样你就能从一系列的选项中随机得到一个项目。
3
当然可以!
这就是Python的一个好处,函数被视为一等公民,可以非常简单地引用。
这意味着这三种方法在接收参数时有相同的要求。(这可能是显而易见的)。
4
这个方法很好(虽然你的示例代码有点过于简单)。既然你想要一个例子:
import random
def main():
def process(data):
return data + [0]
def process1(data):
return data + [9]
def process2(data):
return data + [7]
def run(data):
test = random.choice([process,process1,process2])
print test(data)
for i in range(7):
run([1, 2, 3])
main()
我让它循环了7次,就是为了展示每次选择确实是随机的,也就是说,典型的输出可能是这样的:
[1, 2, 3, 7]
[1, 2, 3, 0]
[1, 2, 3, 0]
[1, 2, 3, 7]
[1, 2, 3, 0]
[1, 2, 3, 9]
[1, 2, 3, 9]
(当然,每次都会随机变化;-)。