어디서나 이런 종류의 질문을 찾지 못했기 때문에 여기에서 질문 할 것입니다.x 시간 동안 함수가 호출되지 않았는지 확인
나를 작성한 특정 기능이 x 시간 동안 호출되지 않았는지 어떻게 확인할 수 있습니까?
def myfun():
myfun.last_called = datetime.now()
# … do things
이 시점부터이 함수가 호출되었을 때 쉽게 알 수 있어야 :
어디서나 이런 종류의 질문을 찾지 못했기 때문에 여기에서 질문 할 것입니다.x 시간 동안 함수가 호출되지 않았는지 확인
나를 작성한 특정 기능이 x 시간 동안 호출되지 않았는지 어떻게 확인할 수 있습니까?
def myfun():
myfun.last_called = datetime.now()
# … do things
이 시점부터이 함수가 호출되었을 때 쉽게 알 수 있어야 :
당신은 함수 정의의 마지막이라는 시간을 포함 할 수있다. 호출 될 때마다 last_called 타임 스탬프가 업데이트됩니다.
더 일반적인 방법은 속성을 연결하는 함수 장식을 정의하는 것입니다 : 그런
def remembercalltimes(f, *args, **kwargs):
"""A decorator to help a function remember when it was last called."""
def inner(*args, **kwargs):
inner.last_called = datetime.now()
return f(*args, **kwargs)
return inner
@remembercalltimes
def myfun():
# … do things
>>> myfun()
>>> myfun.last_called
>>> datetime.datetime(2014, 3, 19, 11, 47, 5, 784833)
import time
last_time_f_called = time.time()
def f():
global last_time_f_called
now = time.time()
time_since = now - last_time_f_called
last_time_f_called = now
# do whatever you wanted to do about value of time_since
뭔가?
당신이 많이 싶었던 물건의 종류가 있다면 당신은 아마, 키는 함수 이름이었다 DICT에 번 업데이트 데코레이터에 그것을 포장 할 수 ...
이는 것 같아 함수의 __dict__
에있는 정보를 장식하기 위해 합리적인 시간을 가졌습니다.
def lastcalled(func):
def inner():
from datetime import datetime
then = func.__dict__.get('lastcalled')
diff = int((datetime.now() - then).total_seconds()) if then else None
print('Last called: {}'.format('{} sec ago'.format(diff) if diff else 'Never'))
func()
func.lastcalled = datetime.now()
return inner
데모 :
@lastcalled
def f():
print('printing in f()')
f()
Last called: Never
printing in f()
#wait 5 seconds
f()
Last called: 5 sec ago
printing in f()
당신은 * 어떤 * 임의의 함수 또는 당신이 작성하는 특정 일을 의미? – kojiro
Sorry.Specific 함수가 저에게 씁니다. – Satoshi