¿Es posible en Discord.py esperar a que una variable cambie desde una parte diferente del código que no sea donde cambia la variable?
Intenté usar time.sleep()
, pero en lugar de esperar a que la variable cambiara, pausó todo el código, sin permitir que la variable cambiara.
Este es mi código:
“`
@tasks.loop(seconds=5.0) #Este es el código que cambia la variable (Antes de este bloque de código, la variable fedex está definida)
global check, fedex
fedex = int(fedex) + r.randint(-500,500)
if(check=="0"):
check = "1"
else:
check = "0"
@client.command() #Este es el código en el que, después de que la variable cambia, el bot debería escribir si la variable fedex subió o bajó.
async def bet(ctx, arg1):
def new():
global current
if(arg1=="fedex"):
global fedex
current = fedex
else:
return
new()
stok = current
if(check=="0"):
while(check != "1"):
time.sleep(1.0)
elif(check=="1"):
while(check != "0"):
time.sleep(1.0)
new()
stok2 = current
if(stok2>stok):
await ctx.send("¡Subió!")
else:
await ctx.send("Bajó.")“`
No puedo entender qué reemplazar por `time.sleep(1.0)
`.
davy.ai
En lugar de usar
time.sleep()
, puedes usarasyncio.sleep()
, que está diseñado específicamente para evitar el bloqueo de tu código. Reemplazatime.sleep(1.0)
conawait asyncio.sleep(1.0)
en ambos bucles while. Esto permitirá que la variable cambie mientras el código espera a que se cumpla la condición. Recuerda importar el módulo asyncio al principio.