Dmitry Kolomeytsev 4 недель назад
Родитель b47dabcf22
Сommit 6cab258c90

@ -19,14 +19,14 @@
Классы могут быть автономными, т.е. независящими от других классов:
```py
>>> class Class1: # Объявление класса
... def zad_zn(self, znach): # Метод класса для задания значения поля data
>>> class Class1:
... def zad_zn(self, znach):
... self.data = znach
... def otobrazh(self): # Метод класса для отображения значения поля data
... def otobrazh(self):
... print(self.data)
...
>>> z1 = Class1() # Создание 1-го экземпляра класса
>>> z2 = Class1() # Создание 2-го экземпляра класса
>>> z1 = Class1()
>>> z2 = Class1()
>>> z1.zad_zn("Экземпляр класса 1")
>>> z2.zad_zn(-632.453)
>>> z1.otobrazh()
@ -43,8 +43,8 @@
Также классы могут наследоваться от других классов, т.е. иметь такие же поля данных как и класс-родитель и имплементировать его методы, которые можно переопределять.
```py
>>> class Class2(Class1): # Объявление класса-наследника другого класса
... def otobrazh(self): # Переопределение метода класса-родителя
>>> class Class2(Class1):
... def otobrazh(self):
... print("Значение =", self.data)
...
>>> z3 = Class2()
@ -89,7 +89,7 @@ def otobrazh(obj):
File "/home/s0ba4/mpei/python-labs/TEMA9/Mod3.py", line 5, in otobrazh
print(self.data)
AttributeError: 'Class1' object has no attribute 'data'
>>> z4.data = "Значение поля data у экземпляра 4" # Прямая инициализация поля data
>>> z4.data = "Значение поля data у экземпляра 4" # Явная инициализация поля data
>>> z4.otobrazh() # Использован метод для отображения значения поля, описанный в Class1
Значение поля data у экземпляра 4
```
@ -99,9 +99,9 @@ def otobrazh(obj):
>>> import Mod3
>>> z4 = Mod3.Class2()
>>> z4.zad_zn("Класс из модуля")
>>> z4.otobrazh() # Использован метод для отображения значения поля, описанный в Class2
>>> z4.otobrazh() # Использован метод для отображения значения поля, описанный в Class2
Значение = Класс из модуля
>>> Mod3.otobrazh("Объект") # Использована функция otobrazh
>>> Mod3.otobrazh("Объект")
Значение объекта = Объект
```
@ -113,11 +113,11 @@ def otobrazh(obj):
```py
>>> class Class3(Class2):
... def __init__(self, znach): # Специальный метод-конструктор
... def __init__(self, znach):
... self.data = znach
... def __add__(self, another_zn): # Специальный метод для сложения
... def __add__(self, another_zn):
... return Class3(self.data + another_zn)
... def zad_another_zn(self, povtor): # Обычный пользовательский метод
... def zad_another_zn(self, povtor):
... self.data *= povtor
...
>>> z5 = Class3("abc")
@ -140,7 +140,7 @@ def otobrazh(obj):
['__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_another_zn', 'zad_zn']
>>> Class3.fio = "Иванов И.И."
>>> z7 = Class3(123)
>>> dir(z7) # Отображение списка атрибутов объекта класса после добавления в него поля fio
>>> dir(z7) # Отображение списка атрибутов объекта класса после добавления поля 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__', 'data', 'fio', 'otobrazh', 'zad_another_zn', 'zad_zn']
>>> dir(z7) == dir(Class3)
False

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