Что такое Python-эквивалент функций tic и toc в Matlab? - PullRequest
80 голосов
/ 01 мая 2011

Что такое Python-эквивалент функций Matlab tic и toc ?

Ответы [ 11 ]

0 голосов
/ 22 октября 2017

Опираясь на ответы Стефана и Антониммо, я положил

def Tictoc():
    start_stack = []
    start_named = {}

    def tic(name=None):
        if name is None:
            start_stack.append(time())
        else:
            start_named[name] = time()

    def toc(name=None):
        if name is None:
            start = start_stack.pop()
        else:
            start = start_named.pop(name)
        elapsed = time() - start
        return elapsed
    return tic, toc

в модуль utils.py и использую его с

from utils import Tictoc
tic, toc = Tictoc()

Таким образом

  • Вы можете просто использовать tic(), toc() и вкладывать их, как в Matlab
  • , альтернативно, вы можете назвать их: tic(1), toc(1) или tic('very-important-block'), toc('very-important-block') и таймеры с разными именами не будут мешать
  • их импорт таким образом предотвращает помехи между модулями, использующими его.

(здесь toc не печатает истекшее время, а возвращает его.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...