Добавление отчета

main
BushmanovAS 1 месяц назад
Родитель beb3870968
Сommit adef01a7df

@ -66,14 +66,14 @@
``` ```
Импортируем первый класс из модуля с помощью обычной инструкции: Импортируем первый класс из модуля с помощью обычной инструкции:
```python ```python
>>>from Mod3 import Class1 #Частичный импорт содержимого модуля >>>from Mod3 import Class1
>>>z4 = Class1() >>>z4 = Class1()
>>>z4.otobrazh() >>>z4.otobrazh()
Traceback (most recent call last): Traceback (most recent call last):
File "<pyshell#171>", line 1, in <module> File "<pyshell#171>", line 1, in <module>
z4.otobrazh() z4.otobrazh()
File "/Users/ArtyomBushmanov/python-labs/TEMA9/Mod3.py", line 5, in 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' AttributeError: 'Class1' object has no attribute 'data'
``` ```
Данная ошибка возникает потому, что метод otobrazh() пытается обратиться к self.data, а Атрибут data еще не был создан для экземпляра z4. Мы не вызывали метод zad_zn(), который создает атрибут 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'] ['__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='Иванов И.И.' >>>Class3.fio='Иванов И.И.'
>>>dir(Class3) >>>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) >>>z7=Class3(123)
>>>dir(z7) >>>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'] ['__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) >>>dir(z7)==dir(Class3)
False # Список атрибутов класса не совпадает со списком атрибутов экземпляра False
>>>print(z7.fio) >>>print(z7.fio)
Иванов И.И. Иванов И.И.
>>>z7.fio == Class3.fio >>>z7.fio == Class3.fio
True # Видим совпадение значений True
>>>dir(z7) >>>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'] ['__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) >>>dir(Class3)
@ -150,15 +150,15 @@ True # Видим совпадение значений
## 6. Выявление родительских классов. ## 6. Выявление родительских классов.
```python ```python
>>> Class3.__bases__ # Вывод родительского класса >>> Class3.__bases__
(<class '__main__.Class2'>,) (<class '__main__.Class2'>,)
>>> Class2.__bases__ >>> Class2.__bases__
(<class '__main__.Class1'>,) (<class '__main__.Class1'>,)
>>> Class1.__bases__ >>> Class1.__bases__
(<class 'object'>,) (<class 'object'>,)
>>> Class3.__mro__ # Получение всей цепочки наследования >>> Class3.__mro__
(<class '__main__.Class3'>, <class '__main__.Class2'>, <class '__main__.Class1'>, <class 'object'>) (<class '__main__.Class3'>, <class '__main__.Class2'>, <class '__main__.Class1'>, <class 'object'>)
>>> ZeroDivisionError.__mro__ # Получение всю цепочку наследования для встроенного класса ошибок «деление на ноль» >>> ZeroDivisionError.__mro__
(<class 'ZeroDivisionError'>, <class 'ArithmeticError'>, <class 'Exception'>, <class 'BaseException'>, <class 'object'>) (<class 'ZeroDivisionError'>, <class 'ArithmeticError'>, <class 'Exception'>, <class 'BaseException'>, <class 'object'>)
``` ```
@ -210,10 +210,10 @@ AttributeError: 'Class4' object has no attribute '_Class4__prm'
def inerz(x,T,yy): def inerz(x,T,yy):
return (x+T*yy)/(T+1) 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 y1=self.param[0]*y0 #Усилитель1
y2=inerz(y1,self.param[1],self.ypr[0]) #Инерционное звено1 y2=inerz(y1,self.param[1],self.ypr[0])
y3=inerz(y2,self.param[2],self.ypr[1]) #Инерционное звено2 y3=inerz(y2,self.param[2],self.ypr[1])
self.ypr[0]=y2 self.ypr[0]=y2
self.ypr[1]=y3 self.ypr[1]=y3
@ -224,12 +224,12 @@ AttributeError: 'Class4' object has no attribute '_Class4__prm'
Тестирование класса: Тестирование класса:
```python ```python
###mainSAU ###mainSAU
>>>prm=[2.5,4,1.3,0.8] #Параметры модели: коэф.усиления, 2 пост.времени, обратная связь >>>prm=[2.5,4,1.3,0.8]
>>>from SAU import * >>>from SAU import *
>>>xx=[0]+[1]*20 #Входной сигнал – «ступенька» >>>xx=[0]+[1]*20
>>>SAUe=SAU(prm) # Создаём экземпляр класса >>>SAUe=SAU(prm)
>>>yt=[] >>>yt=[]
>>>for xt in xx: # Прохождение входного сигнала >>>for xt in xx:
SAUe.zdn_zn(xt) SAUe.zdn_zn(xt)
SAUe.model() SAUe.model()
SAUe.otobraz() SAUe.otobraz()

Загрузка…
Отмена
Сохранить