es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿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)`.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    En lugar de usar time.sleep(), puedes usar asyncio.sleep(), que está diseñado específicamente para evitar el bloqueo de tu código. Reemplaza time.sleep(1.0) con await 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.

Comments are closed.