使用 discord.py 访问命令之间的变量 [英] Access variables between commands with discord.py

查看:15
本文介绍了使用 discord.py 访问命令之间的变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有这个(过于简化的)Discord 机器人

I have this (overly simplified) Discord bot

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() 命令

The problem

When I call call the vote() command, it always goes through the else part of the code. Even after calling the start() command

我希望 vote() 命令的行为有所不同,具体取决于之前调用的其他两个命令是否

I want that the vote() command behave differently depending on if the other two commands where called previously

我尝试在第一行像这样使用 global 关键字

I tried using the global keyword like this on the first line

global voting_enabled
voting_enabled = False

但它什么也没做

推荐答案

global 关键字使用不正确.

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

global should be defined within every function.

例子:

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

这篇关于使用 discord.py 访问命令之间的变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆