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