У меня есть функция чтения в модуле.
Если я выполняю эту функцию одновременно, мне нужно поставить отметку времени.
Как мне это сделать?
что вы подразумеваете под отметкой времени функции?
что вы имеете в виду под одновременным?
«Одновременный» ничего не значит. Даже если есть несколько потоков, только один из них фактически запланирован в данный момент времени. Если она выполняется в нескольких процессах, это не «одна и та же» функция, это две копии, по одной в каждом процессе.






#!/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
Я новичок в Python, не обращайте внимания на мой вопрос. Не могли бы вы объяснить, что происходит, Swaroop ???
@rejinacm, мы используем декораторы, можно прочтите об этом во введении.
Предлагаю несколько иной подход:
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:
Он спрашивает об одновременных вызовах функции. При таком подходе чуть более поздний вызов перезапишет временную метку предыдущего вызова.
Да, но это намеренный пример с той же функцией. Он может украсить две разные функции. И честно говоря, что значит одновременный ??
Верно, я почти уверен, что он не говорил о потоках или других методах распараллеливания. Но в отсутствие другого объяснения того, что может означать «одновременность», я подумал, я бы упомянул об этом здесь.
Если интересно, есть обширная информация о декораторах на вики-странице python.
Некоторые примеры код Терика Зиаде
(более доработанную версию, в которой используется модуль timeit, можно найти в его недавней книге «Экспертное программирование на Python»)
дайте пожалуйста более подробную информацию. где должна быть записана метка времени? Вы читаете из файла? Вы говорите, что отметка времени должна быть одновременной с функцией чтения, или что вам нужно поставить отметку времени, если происходит одновременное чтение?