从python中的异步函数修改全局变量[重复]
Posted
技术标签:
【中文标题】从python中的异步函数修改全局变量[重复]【英文标题】:Modify global variable from async function in python [duplicate] 【发布时间】:2020-06-28 21:41:12 【问题描述】:我正在使用 discord.py 在 Python 中制作一个 Discord 机器人。 我想从异步线程设置/修改全局变量。
message = ""
@bot.command()
async def test(ctx, msg):
message = msg
但是这不起作用。我怎样才能做到这一点?
【问题讨论】:
它不起作用是什么意思?在另一个函数中,值没有反映您在 test 中设置?全局变量应该在异步函数中可用,并且值会改变。很可能它会在其他地方被覆盖。 这能回答你的问题吗? Using global variables in a function @TurePålsson 感谢您指出这一点,显然您必须在所有功能中使用关键字 global 来更改它。 【参考方案1】:正如我在评论中所说,无论您在哪里修改全局变量,都必须在函数中使用关键字 global。如果您只是在功能中阅读它,那么您不需要它。
message = ""
@bot.command()
async def test(ctx, msg):
global message
message = msg
【讨论】:
以上是关于从python中的异步函数修改全局变量[重复]的主要内容,如果未能解决你的问题,请参考以下文章