ответвлено от main/python-labs
Добавление отчета
Этот коммит содержится в:
@@ -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()
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user