Найти - Пользователи
Полная версия: Как передать именные аргументы в фунцию, вызвав ее из другой фунции?
Начало » Python для новичков » Как передать именные аргументы в фунцию, вызвав ее из другой фунции?
1
Guljaca
Как реализовать конструкцию ниже?
Нужно через get_time_work передать функцию с какими-то значениями (свои для каждой фунции; пример test), чтобы она выполнилась внутри этой функции, отобразив время ее работы.

 import time
def get_time_work(func):
  start = time.time()
  func()
  end   = time.time()
  dif   = end - start
  print("Time_work = ", dif)
def test(num, text):
  print(num, text)
get_time_work(test)
Rodegast
Читай про декораторы.
Guljaca
Спасибо. Вот результат.
 import time
def get_time(fn):
    def wrapped(*args, **kwargs):
      start = time.time()
      fn(*args, **kwargs)
      end   = time.time()
      dif   = end - start
      print("Time_work = ", dif)
    return wrapped
 
@get_time
def test(num, text, test="test"):
  print(num, text, test)
 
print (test(10,"text", test="result")) 
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB