Написать декоратор
декоратор должен записывать в файл во сколько начала отрабатывать декорируемая функция и во сколько закончила
Ответы (2 шт):
Автор решения: Екатерина Корчагина
→ Ссылка
oksdfj() - функция которую мы записываем
nachalo() - функция которая вызывается в начале функции oksdfj() и записывает время и дату в файл log.txt (Не забудь создать файл)
konec() - функция которая вызывается в конце функции oksdfj() и записывает время и дату в файл log.txt
from datetime import datetime
import time
def nachalo():
current_datetime1 = datetime.now()
print(current_datetime1)
f = open('log.txt', 'a')
f.write(str(current_datetime1) + "\n")
f.close()
def konec():
current_datetime1 = datetime.now()
print(current_datetime1)
f = open('log.txt', 'a')
f.write(str(current_datetime1) + "\n")
f.close()
def oksdfj():
nachalo()
print("funcia delaet chto-to - 0")
time.sleep(1)
print("funcia delaet chto-to - 1")
time.sleep(1)
print("funcia delaet chto-to - 2")
time.sleep(1)
print("funcia delaet chto-to - 3")
konec()
oksdfj()
Автор решения: Руслан Мамедов
→ Ссылка
Декоратор - функция, которая оборачивает другую функцию, добавляя ей желаемое поведение.
from datetime import datetime
import time
# декорируемая функция
def timer():
print("0")
time.sleep(1)
print("1")
time.sleep(1)
print("2")
time.sleep(1)
print("3")
# декоратор
def timer_logger():
with open('log.txt', 'a') as file:
timer_logger_start(file)
timer()
timer_logger_end(file)
# начало декоратора
def timer_logger_start(file):
file.write(str(datetime.now()) + "\n")
# конец декоратора
def timer_logger_end(file):
file.write(str(datetime.now()) + "\n")
# точка входа в программу
if __name__ == '__main__':
timer_logger()