从列表调用函数

2024-04-26 11:42:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在做一个项目,涉及从一个列表调用函数,但我不能让它直接工作。从列表中调用函数时出现了一些问题,我似乎不知道为什么。下面有一些代码作为示例,也将提供输出。所提供的代码只是我试图做的基本想法的一个例子。这不是我真正的代码。别担心,这是最基本的想法。你知道吗

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

据我所知,这可能是一些简单的错误,我忽略了,但对我的生活,不能明白。救命啊!你知道吗


Tags: 项目run代码import示例列表timedef
3条回答

word1()”不是函数word1;它是调用word1()的返回值,因为word1没有显式返回任何内容,所以返回值是None。什么是word1?只是word1。因此,words的声明应该改为:

words = [word1(), word2()]

收件人:

words = [word1, word2]

您将函数结果存储在列表1中,而不是函数本身。你知道吗

即改变:

words = [word1(), word2()]

收件人:

words = [word1, word2]

结果都是None,这就是为什么会出现NoneType不可调用错误…

调用列表中已有的函数。你想推迟。你知道吗

words = [word1, word2]
def run():
  while True:
    random.choice(words)()
    time.sleep(0.5)

相关问题 更多 >