Как пометить время одновременного вызова функции в Python? - PullRequest
0 голосов
/ 09 января 2009

У меня есть функция чтения в модуле.

Если я выполняю эту функцию одновременно, мне нужно ее пометить.

Как мне это сделать?

Ответы [ 4 ]

6 голосов
/ 09 января 2009

Я предложу немного другой подход:

import time

def timestampit(func):
    def decorate(*args, **kwargs):
        decorate.timestamp = time.time()
        return func(*args, **kwargs)
    return decorate

@timestampit
def hello():
    print 'hello'


hello()
print hello.timestamp

time.sleep(1)

hello()
print hello.timestamp

Отличия от примера Swaroop:

  1. Я использую time.time (), а не datetime.now () для отметки времени, потому что она больше подходит для тестирования производительности
  2. Я прикрепляю метку времени как атрибут украшенной функции. Таким образом, вы можете вызывать и хранить его в любое время.
2 голосов
/ 09 января 2009
#!/usr/bin/env python

import datetime

def timestampit(func):
    def decorate(*args, **kwargs):
        print datetime.datetime.now()
        return func(*args, **kwargs)
    return decorate

@timestampit
def hello():
    print 'hello'

hello()

# Output:
# $ python test.py 
# 2009-01-09 11:50:48.704584
# hello
0 голосов
/ 09 января 2009

Пример код Терика Зиаде

(более совершенную версию, в которой используется модуль timeit, можно найти в его недавней книге «Программирование на Python для экспертов»)

0 голосов
/ 09 января 2009

Если вам интересно, * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *.

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