关于python:从列表中调用随机函数的语法

Syntax to call random function from a list

本问题已经有最佳答案,请猛点这里访问。

从这个线程:如何通过选择随机变量在Python中执行随机事件?

我了解到可以将一些函数放入一个列表中,并通过使用random.choice()调用其中一个函数来生成一个随机事件。

我对此很感兴趣,因为作为初学者教程的一部分,我正在编写一个非常小的基于文本的游戏。

但当我写下我认为会给我期望的结果时(也就是说,只调用其中一个函数并打印其字符串:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import random

def func_test_1():
    print"This is func_test_1."

def func_test_2():
    print"This is func_test_2."

def func_test_3():
    print"This is func_test_3."

my_list = [func_test_1(), func_test_2(), func_test_3()]

random.choice(my_list)

我得到这个结果:

1
2
3
4
5
6
7
8
9
C:\Windows\system32\cmd.exe /c python random_func.py

This is func_test_1.

This is func_test_2.

This is func_test_3.

Hit any key to close this window...

这是正在调用和打印的三个函数。

有人能帮我用正确的语法吗?谢谢您。


与你周围的括号调用函数。你想要的是他们的呼叫分配和选择后的列表:

1
2
my_list = [func_test_1, func_test_2, func_test_3]
random.choice(my_list)()

当你做你firstly,my_list = [func_test_1(), func_test_2(), func_test_3()]商店功能的结果,在需要的函数列表。而不是做my_list = [func_test_1, func_test_2, func_test_3]然后调用随机函数。这样的:

1
2
my_list = [func_test_1, func_test_2, func_test_3]
random.choice(my_list)()


是在Python函数对象。

如果你只是通过他们的问题,他们的名字(没有括号,这做的是调用该函数!)你的优先问题,函数对象。你可以重新绑定他们检查他们。他们在一个商店或参考名单。

mylist = [test_func_1,test_func_2,..]

在这一点,没有功能已被执行。然后你可以使用一个函数从一个球员random.choiceIT使用Invoke ()名单:

  • 第一mylist[0]()调用函数的列表
  • random.choice(mylist)()调用随机函数