Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

192
Views
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 answers
Answer question

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 Report

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!