diff --git a/TEMA9/report.md b/TEMA9/report.md index 5fc1553..06a5134 100644 --- a/TEMA9/report.md +++ b/TEMA9/report.md @@ -66,14 +66,14 @@ ``` Импортируем первый класс из модуля с помощью обычной инструкции: ```python ->>>from Mod3 import Class1 #Частичный импорт содержимого модуля +>>>from Mod3 import Class1 >>>z4 = Class1() >>>z4.otobrazh() Traceback (most recent call last): File "", line 1, in z4.otobrazh() File "/Users/ArtyomBushmanov/python-labs/TEMA9/Mod3.py", line 5, in otobrazh - print(self.data)#Отображение данных экземпляра + print(self.data) AttributeError: 'Class1' object has no attribute 'data' ``` Данная ошибка возникает потому, что метод otobrazh() пытается обратиться к self.data, а Атрибут data еще не был создан для экземпляра z4. Мы не вызывали метод zad_zn(), который создает атрибут data. @@ -131,16 +131,16 @@ NameError: name 'z4' is not defined ['__add__', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'otobrazh', 'zad_dr_zn', 'zad_zn'] >>>Class3.fio='Иванов И.И.' >>>dir(Class3) -['__add__', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'fio', 'otobrazh', 'zad_dr_zn', 'zad_zn']# Появился атрибут fio +['__add__', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'fio', 'otobrazh', 'zad_dr_zn', 'zad_zn'] >>>z7=Class3(123) >>>dir(z7) ['__add__', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'data', 'fio', 'otobrazh', 'zad_dr_zn', 'zad_zn'] >>>dir(z7)==dir(Class3) -False # Список атрибутов класса не совпадает со списком атрибутов экземпляра +False >>>print(z7.fio) Иванов И.И. >>>z7.fio == Class3.fio -True # Видим совпадение значений +True >>>dir(z7) ['__add__', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'data', 'fio', 'otobrazh', 'zad_dr_zn', 'zad_zn'] >>>dir(Class3) @@ -150,15 +150,15 @@ True # Видим совпадение значений ## 6. Выявление родительских классов. ```python ->>> Class3.__bases__ # Вывод родительского класса +>>> Class3.__bases__ (,) >>> Class2.__bases__ (,) >>> Class1.__bases__ (,) ->>> Class3.__mro__ # Получение всей цепочки наследования +>>> Class3.__mro__ (, , , ) ->>> ZeroDivisionError.__mro__ # Получение всю цепочку наследования для встроенного класса ошибок «деление на ноль» +>>> ZeroDivisionError.__mro__ (, , , , ) ``` @@ -210,10 +210,10 @@ AttributeError: 'Class4' object has no attribute '_Class4__prm' def inerz(x,T,yy): return (x+T*yy)/(T+1) - y0=self.x-self.ypr[1]*self.param[3] #Обр.связь с усилителем 2 + y0=self.x-self.ypr[1]*self.param[3] y1=self.param[0]*y0 #Усилитель1 - y2=inerz(y1,self.param[1],self.ypr[0]) #Инерционное звено1 - y3=inerz(y2,self.param[2],self.ypr[1]) #Инерционное звено2 + y2=inerz(y1,self.param[1],self.ypr[0]) + y3=inerz(y2,self.param[2],self.ypr[1]) self.ypr[0]=y2 self.ypr[1]=y3 @@ -224,12 +224,12 @@ AttributeError: 'Class4' object has no attribute '_Class4__prm' Тестирование класса: ```python ###mainSAU ->>>prm=[2.5,4,1.3,0.8] #Параметры модели: коэф.усиления, 2 пост.времени, обратная связь +>>>prm=[2.5,4,1.3,0.8] >>>from SAU import * ->>>xx=[0]+[1]*20 #Входной сигнал – «ступенька» ->>>SAUe=SAU(prm) # Создаём экземпляр класса +>>>xx=[0]+[1]*20 +>>>SAUe=SAU(prm) >>>yt=[] ->>>for xt in xx: # Прохождение входного сигнала +>>>for xt in xx: SAUe.zdn_zn(xt) SAUe.model() SAUe.otobraz()