Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

188
Visualizações
Retraso entre diferentes llamadas de función

Tengo una pregunta sobre cómo agregar un retraso después de llamar a varias funciones.

Digamos que he funcionado como:

 def my_func1(): print("Function 1") def my_func2(): print("Function 2") def my_func3(): print("Function 3")

Actualmente he agregado un retraso entre invocarlos como a continuación:

 delay = 1 my_func1() time.sleep(delay) my_func2() time.sleep(delay) my_func3() time.sleep(delay)

Como puede ver, necesité algunas veces time.sleep , que me gustaría evitar. Usar el decorador tampoco es una opción, ya que podría ser que me gustaría evitar demoras al llamar a una de estas funciones que no está en un grupo.

¿Tienes algún consejo para embellecer esto?

over 4 years ago · Santiago Trujillo
4 Respostas
Responde à pergunta

0

No estoy seguro si sé lo que quieres decir, pero podrías intentar:

 functions = [my_func1, my_func2, my_func3] for func in functions: func() time.sleep(1)
over 4 years ago · Santiago Trujillo Relatório

0

Puedes definir algo como esto:

 def delay_it(delay, fn, *args, **kwargs): return_value = fn(*args, **kwargs) time.sleep(delay)

luego

 a = delay_it(1, my_func1, "arg1", arg2="arg2") b = delay_it(1, my_func2, "arg3") ...
over 4 years ago · Santiago Trujillo Relatório

0

He probado esto basado en "Cómo hacer que los decoradores se enciendan o apaguen opcionalmente" ( Cómo hacer que los decoradores se enciendan o apaguen opcionalmente )

 from time import sleep def funcdelay(func): def inner(): func() print('inner') sleep(1) inner.nodelay = func return inner @funcdelay def my_func1(): print("Function 1") @funcdelay def my_func2(): print("Function 2") @funcdelay def my_func3(): print("Function 3") my_func1() my_func2() my_func3() my_func1.nodelay() my_func2.nodelay() my_func3.nodelay()

Producción:

 Function 1 inner Function 2 inner Function 3 inner Function 1 Function 2 Function 3

Puede ver que puede evitar el retraso.

over 4 years ago · Santiago Trujillo Relatório

0

No es una buena forma de manejar el retraso en una función; porque cada función debe hacer una sola cosa.
No hagas esto:

 def my_func(delay): # do stuff if delay>0: time.sleep(delay)

Intente hacer una función de controlador de demora y coloque la demora adecuada después de cada función que le pase.
Prueba esto:

 def delay_handler(functions_list,inputs_list,delay_list): for function,cur_input,delay in zip(functions_list,inputs_list,delay_list): function(*cur_input) time.sleep(delay)

Consejo 1: Zip iterará tirando cada lista (cualquier iterable) simultáneamente; los primeros elementos en inputs_list y delay_list son para la primera función en function_list y etc.
Consejo 2: el '*' detrás de una lista la desempaquetará.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda