使用访问命令之间的变量不和.py

2024-04-27 03:42:34 发布

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

我有一个(过于简化)不和机器人

voting_enabled = False

@bot.command()
async def start():
    voting_enabled = True

@bot.command()
async def finish():
    voting_enabled = False

@bot.command()
async def vote():
    if voting_enabled:
        # Do something
    else:
        # Do something else

问题

当我调用vote()命令时,它总是遍历代码的else部分。即使在调用start()命令之后

我想要达到的目标

我希望vote()命令的行为会有所不同,这取决于前面调用的其他两个命令

我尝试了什么

我试着在第一行使用global关键字

^{pr2}$

但它什么也没做


Tags: 命令falsetrueasyncdefbot机器人enabled
1条回答
网友
1楼 · 发布于 2024-04-27 03:42:34

未正确使用global关键字。在

global应该在每个函数中定义。在

示例:

voting_enabled = False

@bot.command()
async def start():
    global voting_enabled

    voting_enabled = True

@bot.command()
async def finish():
    global voting_enabled

    voting_enabled = False

@bot.command()
async def vote():
    global voting_enabled

    if voting_enabled:
        # Do something
    else:
        # Do something else

相关问题 更多 >