我正在制作一个涉及从列表中调用函数的项目,但我无法让它直接工作。从列表中调用函数有一些问题,我似乎无法弄清楚原因。我在下面有一些代码作为示例,并且还将提供输出。提供的代码只是我正在尝试做的基本思想的一个例子。这不是我的实际代码。不过别担心,这是基本思想。
import random, time
def word1():
print "Hello"
def word2():
print "Goodbye"
words = [word1(), word2()]
def run():
while True:
random.choice(words)()
time.sleep(0.5)
run()
我得到的输出是这样的:
TypeError: 'NoneType' object is not callable
据我所知,这可能是我忽略的一些简单错误,但对于我来说,无法弄清楚。帮助!
请您参考如下方法:
“word1()”不是函数word1;它是调用 word1() 的返回值,因为 word1 没有明确返回任何东西,所以返回值是 None。 word1 是什么?它只是 word1。因此,words 的声明应更改为:
words = [word1(), word2()]
到:
words = [word1, word2]
