Lesson 28, 29
This commit is contained in:
parent
5b6f2916a6
commit
1c5715972c
91
lesson_28/code/decor.py
Normal file
91
lesson_28/code/decor.py
Normal file
@ -0,0 +1,91 @@
|
||||
import datetime
|
||||
|
||||
|
||||
def myFirstDecorator(fn):
|
||||
def wrapper(*args):
|
||||
start = datetime.datetime.now()
|
||||
#что-то делаем
|
||||
res = fn(*args) #вызываем функцию которую передали
|
||||
end = datetime.datetime.now()
|
||||
print(f"время выполнения функции: { end - start }")
|
||||
# что-то делаем
|
||||
return res - 1
|
||||
return wrapper
|
||||
|
||||
|
||||
# @myFirstDecorator
|
||||
# def pow_(x, y):
|
||||
# return x ** y
|
||||
#
|
||||
# @myFirstDecorator
|
||||
# def summ(x, y):
|
||||
# return x + y
|
||||
|
||||
|
||||
class A:
|
||||
@staticmethod
|
||||
def summ(self, x, y):
|
||||
print(self)
|
||||
self.summ(self, y, )
|
||||
return x + y
|
||||
|
||||
def summ_(self, x, y):
|
||||
return x + y
|
||||
|
||||
|
||||
# obj = A()
|
||||
# print(obj.summ(obj,2,3))
|
||||
|
||||
|
||||
# print(pow_(3,3))
|
||||
# print(summ(3,4))
|
||||
# fn = myFirstDecorator(pow)
|
||||
# result = fn(2,2)
|
||||
# print(result)
|
||||
|
||||
|
||||
class Db:
|
||||
instance = None
|
||||
def __init__(self, age):
|
||||
self.age = age
|
||||
if Db.instance == None:
|
||||
return
|
||||
else:
|
||||
raise Exception()
|
||||
@staticmethod
|
||||
def getInstance(age):
|
||||
if Db.instance == None:
|
||||
Db.instance = Db(age)
|
||||
|
||||
return Db.instance
|
||||
# try:
|
||||
obj = Db.getInstance(10)
|
||||
obj2 = Db.getInstance(16)
|
||||
|
||||
# print(obj.age)
|
||||
# print(obj2.age)
|
||||
# except Exception as e:
|
||||
# print(e)
|
||||
from abc import ABC, abstractmethod
|
||||
|
||||
class Absclass(ABC):
|
||||
def print(self,x):
|
||||
print("Passed value: ", x)
|
||||
@abstractmethod
|
||||
def task(self):
|
||||
print("We are inside Absclass task")
|
||||
|
||||
@abstractmethod
|
||||
def task_(self):
|
||||
print("We are inside Absclass task")
|
||||
|
||||
class test_class(Absclass):
|
||||
pass
|
||||
def task(self):
|
||||
print("We are inside test_class task")
|
||||
def task_(self):
|
||||
print("We are inside Absclass task")
|
||||
|
||||
test_obj = test_class()
|
||||
test_obj.task()
|
||||
test_obj.print("10")
|
||||
5
lesson_28/home_task/task42.py
Executable file
5
lesson_28/home_task/task42.py
Executable file
@ -0,0 +1,5 @@
|
||||
# todo: Реализовать собственный класс исключений, которые будут вызываться (бросаться) в случае:
|
||||
# 1. пользователь ввел некорректное значение в заданном диапазоне
|
||||
# 2. результат запроса вернул 0 строк
|
||||
# 3. Произошел разрыв соединения с сервером
|
||||
|
||||
BIN
lesson_28/manual/lection_except.pdf
Executable file
BIN
lesson_28/manual/lection_except.pdf
Executable file
Binary file not shown.
9
lesson_29/home_task/task43.py
Executable file
9
lesson_29/home_task/task43.py
Executable file
@ -0,0 +1,9 @@
|
||||
#todo: Реализовать декоратор в котором нужно подсчитать кол-во вызовов декорированной функции в процессе выполнения кода.
|
||||
# Выгрузить статистику подсчета в файл debug.log в формате: Название функции, кол-во вызовов, дата-время последнего выполнения
|
||||
Пример:
|
||||
render, 10, 12.05.2022 12:00
|
||||
show, 5, 12.05.2022 12:02
|
||||
render, 15, 12.05.2022 12:07
|
||||
|
||||
Декоратор должен применяться для различных функций с переменным числом аргументов.
|
||||
Статистику вызовов необходимо записывать в файл при каждом запуске скрипта.
|
||||
33
lesson_29/home_task/task44.py
Executable file
33
lesson_29/home_task/task44.py
Executable file
@ -0,0 +1,33 @@
|
||||
# 1. Реализовать класса DB - синглтон. Экземляр класса(подключение) к PostgreSQL
|
||||
# должно быть единственным.
|
||||
|
||||
# 2. Реализовать фабрику которая создает модели различных производителей
|
||||
|
||||
class Car:
|
||||
def __init__(self, brand, model):
|
||||
"""Инициализируйте атрибуты brand и model"""
|
||||
|
||||
def make_lada():
|
||||
"реализуйте метод для создания автомобиля Lada"
|
||||
|
||||
def make_mercedes():
|
||||
"реализуйте метод для создания автомобиля Mercedes"
|
||||
|
||||
def make_toyota():
|
||||
"реализуйте метод для создания создания Toyota"
|
||||
|
||||
def __repr__(self):
|
||||
"Реализуйте логику дандера"
|
||||
|
||||
|
||||
|
||||
# 2. Реализовать для класса Car абстрактный класс который содержит
|
||||
# aбстрактные методы sold, discount
|
||||
|
||||
def sold(self):
|
||||
"""Автомобиль продан"""
|
||||
print(f"Автомобиль {self.brand} {self.model} продан ")
|
||||
|
||||
def discount(self):
|
||||
"""Скидка на автомобиль"""
|
||||
print(f"На автомобиль {self.brand} {self.model} скидка 5%")
|
||||
BIN
lesson_29/manual/lection_function_decorator.pdf
Executable file
BIN
lesson_29/manual/lection_function_decorator.pdf
Executable file
Binary file not shown.
BIN
lesson_29/manual/lection_oop.pdf
Executable file
BIN
lesson_29/manual/lection_oop.pdf
Executable file
Binary file not shown.
Loading…
Reference in New Issue
Block a user