变量未定义错误,即使它是?

问题描述 投票:-1回答:1

我正在制作一个discord.py机器人,我正在尝试实现一个命令,告诉你在这个时期结束之前有多少时间。代码本身工作,但如果我尝试将其实现到bot中,我会收到此错误:

NameError:未定义名称'timer'

(该变量称为'timee',因为我之后也使用time.sleep()函数)

这是它遇到问题的代码:

def setTime():
    global timee

    print(timee)

    if timee > 59 and timee < 100:
        timee -= 100
        timee += 60
    elif timee > 159 and timee < 200:
        timee -= 100
        timee += 60
    elif timee > 259 and timee < 300:
        timee -= 100
        timee += 60

我有print(timee)在那里测试它是否认为它是定义与否,它没有。

这是我调用setTime函数的代码(也应该设置时间)

if currentTime < start:
    timee = start - currentTime

    print(timee)

    setTime()
    doThing()

    await client.send_message(message.channel, content = "School hasn't started yet! It starts in %s:%s" % (hours, minutes))
    print("%s got the time left." % message.author)

编辑:'time'变量在if语句和函数之外声明。

编辑2:我尝试了某人评论,(评论现在被删除),这是做def setTime(timee):而不是

def setTime():
    global timee

这很有效。我不知道这是低效还是什么,但它有效。此外,如果它不在discord机器人中,这个完全相同的代码也可以工作。

python python-3.x variables discord.py defined
1个回答
0
投票

def setTime(timee):(而不是使用def setTime():而只是尝试使用全局变量)然后从函数内部调用'timee'似乎可以解决所有问题。

如果有一些更有效或更好的方法来做到这一点然后告诉,但现在我可能会坚持这一点,因为这是我发现的工作。

© www.soinside.com 2019 - 2024. All rights reserved.