time watchを作成する

This commit is contained in:
ry.yamafuji 2025-03-20 10:34:58 +09:00
parent c8453538b0
commit 748434e2cf

57
src/libs/time_watcg.py Normal file
View File

@ -0,0 +1,57 @@
import time
class SimpleLogger:
def debug(self, message):
print(message)
class TimeWatch:
def __init__(self, logger=None):
if not logger:
logger = SimpleLogger()
self.logger = logger
self.start_time = None
self.end_time = None
def start(self):
self.start_time = time.time()
self.logger.debug("Timer started.")
def stop(self):
self.end_time = time.time()
self.logger.debug("Timer stopped.")
def elapsed_time(self):
if self.start_time is None:
raise ValueError("Timer has not been started.")
if self.end_time is None:
raise ValueError("Timer has not been stopped.")
elapsed = self.end_time - self.start_time
self.logger.debug(f"Elapsed time: {elapsed} seconds")
return elapsed
def reset(self):
self.start_time = None
self.end_time = None
self.logger.debug("Timer reset.")
@classmethod
def debug(cls, func):
def wrapper(*args, **kwargs):
instance = cls() # インスタンスを作成
instance.start()
result = func(*args, **kwargs)
instance.stop()
instance.elapsed_time()
return result
return wrapper
if __name__ == "__main__":
@TimeWatch.debug
def test_function():
time.sleep(2)
return "Function executed."
test_function()