Python 在on_消息函数外部调用时,无法在函数内部引用变量
我正在尝试创建一个名为“saynum”的代码,参数为amount(这是一个自然数)。该命令的工作方式是计算自运行该命令以来的消息数,并将该数字发送到discord。不过我有一个街区。当尝试运行Python 在on_消息函数外部调用时,无法在函数内部引用变量,python,discord,discord.py,discord.py-rewrite,Python,Discord,Discord.py,Discord.py Rewrite,我正在尝试创建一个名为“saynum”的代码,参数为amount(这是一个自然数)。该命令的工作方式是计算自运行该命令以来的消息数,并将该数字发送到discord。不过我有一个街区。当尝试运行异步定义on_message(message)(当然是@bot.event)并调用该函数之外的变量时,我无法从on_message函数之外引用该变量。有解决办法吗?这个问题可能会被否决 如果没有解决方法,那么该命令是否可以工作?我不知道如何用另一种方式来处理它 以下是我正在使用的代码: import dis
异步定义on_message(message)
(当然是@bot.event)并调用该函数之外的变量时,我无法从on_message函数之外引用该变量。有解决办法吗?这个问题可能会被否决
如果没有解决方法,那么该命令是否可以工作?我不知道如何用另一种方式来处理它
以下是我正在使用的代码:
import discord
from discord.ext import commands
import random
import sys
import traceback
Client = discord.Client()
client = commands.Bot(command_prefix='~', case_insensitive=True)
client.remove_command("help")
@client.command()
async def saynum(ctx, amount):
num = 0
if amount.isdigit():
if int(amount) < 1:
await ctx.send("Please put an integer greater than 1.")
else:
@client.event
async def on_message(message):
num += 1
await ctx.send(num)
导入不一致
从discord.ext导入命令
随机输入
导入系统
导入回溯
Client=discord.Client()
client=commands.Bot(命令前缀=“~”,不区分大小写=True)
client.remove_命令(“帮助”)
@client.command()
异步def saynum(ctx,金额):
num=0
如果amount.isdigit():
如果int(金额)<1:
等待ctx.send(“请输入一个大于1的整数”)
其他:
@客户端事件
异步def on_消息(消息):
num+=1
等待ctx发送(num)
哦,最后一件事。我的python版本是3.6.6,如果你不知道的话,我正在使用discord.py重写。行上方
num+=1
put非本地num
这让python知道变量的范围(在本例中为外部变量)