使用 discord.py 访问命令之间的变量
- 作者: 莫叹流年
- 来源: 51数据库
- 2023-02-01
问题描述
我有这个(过于简化的)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(重写)on_member_update 无法正常工作
0
Discord.py 在 vc 中获取用户分钟数
0
discord.py 重写 |为我的命令出错
0
Discord.py rewrite 如何 DM 命令?
0
播放音频时,最后一部分被切断.如何解决这个问题?(discord.py)
0
在消息删除消息 Discord.py
0
如何使 discord.py 机器人私人/直接消息不是作者的人?
0
(Discord.py) 如何获取整个嵌入内容?
0
Discord bot 尽管获得了许可,但不能提及所有人
0
Discord.py discord.NotFound 异常
0
