Similar presentations:
DS. Программирование Python. Наследование
1.
DSПрограммирование
Python
Наследование
2.
ВведениеТема
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
3.
ВведениеТема
На этом уроке:
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
4.
ВведениеТема
Познакомимся с понятием «Наследование» в
контексте ООП
На этом уроке:
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
5.
ВведениеТема
Познакомимся с понятием «Наследование» в
контексте ООП
Научимся создавать базовые классы и классы-
На этом уроке:
потомки
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
6.
ВведениеТема
Познакомимся с понятием «Наследование» в
контексте ООП
Научимся создавать базовые классы и классы-
На этом уроке:
потомки
Более детально разберемся с функцией super()
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
7.
ВведениеТема
Познакомимся с понятием «Наследование» в
контексте ООП
Научимся создавать базовые классы и классы-
На этом уроке:
потомки
Более детально разберемся с функцией super()
Научимся ее использовать в контексте
наследования.
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
8.
ВведениеТема
Можно ли создавать сразу несколько классов в одном файле с кодом?
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
9.
ВведениеТема
Можно ли создавать сразу несколько классов в одном файле с кодом?
Да, можно
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
10.
ВведениеТема
Можно ли создавать сразу несколько классов в одном файле с кодом?
Да, можно
Для чего нужна функция super()?
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
11.
ВведениеТема
Можно ли создавать сразу несколько классов в одном файле с кодом?
Да, можно
Для чего нужна функция super()?
Функция super() нужна для обращения к атрибутам базового класса
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
12.
ВведениеТема
Можно ли создавать сразу несколько классов в одном файле с кодом?
Да, можно
Для чего нужна функция super()?
Функция super() нужна для обращения к атрибутам базового класса
Какую роль выполняет функция isinstance()?
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
13.
ВведениеТема
Можно ли создавать сразу несколько классов в одном файле с кодом?
Да, можно
Для чего нужна функция super()?
Функция super() нужна для обращения к атрибутам базового класса
Какую роль выполняет функция isinstance()?
Функция isinstance() проверяет, является ли объект экземпляром
указанного класса или классов
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
14.
ВведениеТема
Можно ли создавать сразу несколько классов в одном файле с кодом?
Да, можно
Для чего нужна функция super()?
Функция super() нужна для обращения к атрибутам базового класса
Какую роль выполняет функция isinstance()?
Функция isinstance() проверяет, является ли объект экземпляром
указанного класса или классов
В чем заключается суть абстракции как принципа ООП?
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
15.
ВведениеТема
Можно ли создавать сразу несколько классов в одном файле с кодом?
Да, можно
Для чего нужна функция super()?
Функция super() нужна для обращения к атрибутам базового класса
Какую роль выполняет функция isinstance()?
Функция isinstance() проверяет, является ли объект экземпляром
указанного класса или классов
В чем заключается суть абстракции как принципа ООП?
Задача абстракции – определить действительно нужные поля и
методы класса, отсекая ненужные данные.
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
16.
ВведениеТема
Можно ли создавать сразу несколько классов в одном файле с кодом?
Да, можно
Для чего нужна функция super()?
Функция super() нужна для обращения к атрибутам базового класса
Какую роль выполняет функция isinstance()?
Функция isinstance() проверяет, является ли объект экземпляром
указанного класса или классов
В чем заключается суть абстракции как принципа ООП?
Задача абстракции – определить действительно нужные поля и
методы класса, отсекая ненужные данные.
В чем заключается суть инкапсуляции как принципа ООП?
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
17.
ВведениеТема
Можно ли создавать сразу несколько классов в одном файле с кодом?
Да, можно
Для чего нужна функция super()?
Функция super() нужна для обращения к атрибутам базового класса
Какую роль выполняет функция isinstance()?
Функция isinstance() проверяет, является ли объект экземпляром
указанного класса или классов
В чем заключается суть абстракции как принципа ООП?
Задача абстракции – определить действительно нужные поля и
методы класса, отсекая ненужные данные.
В чем заключается суть инкапсуляции как принципа ООП?
Задача инкапсуляции – объединить поля и методы внутри одного
класса, а также предоставить доступ только к определенным
атрибутам класса
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
18.
ТеорияВведение в наследование
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
19.
ТеорияВведение в наследование
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
20.
ТеорияВведение в наследование
Наследование – механизм создания новых классов на
основании уже существующих.
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
21.
ТеорияВведение в наследование
Наследование – механизм создания новых классов на
основании уже существующих.
Родительский класс – класс, от которого ведется
наследование. Такие классы еще называют базовыми или
суперклассами.
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
22.
ТеорияВведение в наследование
Наследование – механизм создания новых классов на
основании уже существующих.
Родительский класс – класс, от которого ведется
наследование. Такие классы еще называют базовыми или
суперклассами.
Дочерний класс – класс, который наследуется от
родительского. Такие классы еще называют наследниками
или подклассами
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
23.
ТеорияВведение в наследование
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
24.
ТеорияВведение в наследование
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
25.
ТеорияВведение в наследование
С помощью наследования можно создавать дочерние классы на основании
родительских, это позволяет избежать возможного дублирования кода. Все
изменения, внесенные в родительский класс, будут отражены и в дочерних классах.
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
26.
ТеорияРеализация наследования в Python
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
27.
ТеорияРеализация наследования в Python
class BaseHuman:
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
28.
ТеорияРеализация наследования в Python
class BaseHuman:
pass
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
29.
ТеорияРеализация наследования в Python
class BaseHuman:
pass
pass – ключевое слово, использующееся в качестве «заглушки» для будущего кода.
Например, когда мы создаем класс, но пока не хотим писать его реализацию.
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
30.
ТеорияРеализация наследования в Python
class BaseHuman:
pass
# Создаем класс для моделирования программиста
class Programmer(BaseHuman): # Наследуемся от класса BaseHuman
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
31.
ТеорияРеализация наследования в Python
class BaseHuman:
pass
# Создаем класс для моделирования программиста
class Programmer(BaseHuman): # Наследуемся от класса BaseHuman
pass
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
32.
ТеорияРеализация наследования в Python
class BaseHuman:
def __init__(self, name, age): # инициализатор класса
# Создаем класс для моделирования программиста
class Programmer(BaseHuman): # Наследуемся от класса BaseHuman
pass
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
33.
ТеорияРеализация наследования в Python
class BaseHuman:
def __init__(self, name, age): # инициализатор класса
self.name = name
# имя
# Создаем класс для моделирования программиста
class Programmer(BaseHuman): # Наследуемся от класса BaseHuman
pass
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
34.
ТеорияРеализация наследования в Python
class BaseHuman:
def __init__(self, name, age): # инициализатор класса
self.name = name
# имя
self.age = age
# возраст
# Создаем класс для моделирования программиста
class Programmer(BaseHuman): # Наследуемся от класса BaseHuman
pass
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
35.
ТеорияРеализация наследования в Python
class BaseHuman:
def __init__(self, name, age): # инициализатор класса
self.name = name
# имя
self.age = age
# возраст
def introduce(self):
# вывод информацию об имени и возрасте
# Создаем класс для моделирования программиста
class Programmer(BaseHuman): # Наследуемся от класса BaseHuman
pass
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
36.
ТеорияРеализация наследования в Python
class BaseHuman:
def __init__(self, name, age): # инициализатор класса
self.name = name
# имя
self.age = age
# возраст
def introduce(self):
# вывод информацию об имени и возрасте
print(f'Привет, меня зовут {self.name}!')
# Создаем класс для моделирования программиста
class Programmer(BaseHuman): # Наследуемся от класса BaseHuman
pass
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
37.
ТеорияРеализация наследования в Python
class BaseHuman:
def __init__(self, name, age): # инициализатор класса
self.name = name
# имя
self.age = age
# возраст
def introduce(self):
# вывод информацию об имени и возрасте
print(f'Привет, меня зовут {self.name}!')
print(f'Мой возраст: {self.age}')
# Создаем класс для моделирования программиста
class Programmer(BaseHuman): # Наследуемся от класса BaseHuman
pass
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
38.
ТеорияРеализация наследования в Python
class BaseHuman:
def __init__(self, name, age): # инициализатор класса
self.name = name
# имя
self.age = age
# возраст
def introduce(self):
# вывод информацию об имени и возрасте
print(f'Привет, меня зовут {self.name}!')
print(f'Мой возраст: {self.age}')
# Создаем класс для моделирования программиста
class Programmer(BaseHuman): # Наследуемся от класса BaseHuman
pass
human = BaseHuman(name='Миша', age=25)
# экземпляр класса
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
39.
ТеорияРеализация наследования в Python
class BaseHuman:
def __init__(self, name, age): # инициализатор класса
self.name = name
# имя
self.age = age
# возраст
def introduce(self):
# вывод информацию об имени и возрасте
print(f'Привет, меня зовут {self.name}!')
print(f'Мой возраст: {self.age}')
# Создаем класс для моделирования программиста
class Programmer(BaseHuman): # Наследуемся от класса BaseHuman
pass
human = BaseHuman(name='Миша', age=25)
# экземпляр класса
proger = Programmer(name='Дима', age=26)
# экземпляр класса
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
40.
ТеорияРеализация наследования в Python
class BaseHuman:
def __init__(self, name, age): # инициализатор класса
self.name = name
# имя
self.age = age
# возраст
def introduce(self):
# вывод информацию об имени и возрасте
print(f'Привет, меня зовут {self.name}!')
print(f'Мой возраст: {self.age}')
# Создаем класс для моделирования программиста
class Programmer(BaseHuman): # Наследуемся от класса BaseHuman
pass
human = BaseHuman(name='Миша', age=25)
# экземпляр класса
proger = Programmer(name='Дима', age=26)
# экземпляр класса
human.introduce() # вызовы метода introduce()
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
41.
ТеорияРеализация наследования в Python
class BaseHuman:
def __init__(self, name, age): # инициализатор класса
self.name = name
# имя
self.age = age
# возраст
def introduce(self):
# вывод информацию об имени и возрасте
print(f'Привет, меня зовут {self.name}!')
print(f'Мой возраст: {self.age}')
# Создаем класс для моделирования программиста
class Programmer(BaseHuman): # Наследуемся от класса BaseHuman
pass
human = BaseHuman(name='Миша', age=25)
# экземпляр класса
proger = Programmer(name='Дима', age=26)
# экземпляр класса
human.introduce() # вызовы метода introduce()
proger.introduce()
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
42.
ТеорияРеализация наследования в Python
class BaseHuman:
def __init__(self, name, age): # инициализатор класса
self.name = name
# имя
self.age = age
# возраст
def introduce(self):
# вывод информацию об имени и возрасте
print(f'Привет, меня зовут {self.name}!')
print(f'Мой возраст: {self.age}')
# Создаем класс для моделирования программиста
class Programmer(BaseHuman): # Наследуемся от класса BaseHuman
pass
human = BaseHuman(name='Миша', age=25)
# экземпляр класса
proger = Programmer(name='Дима', age=26)
# экземпляр класса
human.introduce() # вызовы метода introduce()
proger.introduce()
>>> Привет, меня зовут Миша!
Мой возраст: 25
Привет, меня зовут Дима!
Мой возраст: 26
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
43.
ТеорияРеализация наследования в Python
class BaseHuman:
def __init__(self, name, age): # инициализатор класса
self.name = name
# имя
self.age = age
# возраст
def introduce(self):
# вывод информацию об имени и возрасте
print(f'Привет, меня зовут {self.name}!')
print(f'Мой возраст: {self.age}')
# Создаем класс для моделирования программиста
class Programmer(BaseHuman): # Наследуемся от класса BaseHuman
pass
human = BaseHuman(name='Миша', age=25)
# экземпляр класса
proger = Programmer(name='Дима', age=26)
# экземпляр класса
human.introduce() # вызовы метода introduce()
proger.introduce()
# вывод на экран локальных свойств объектов
print(human.__dict__)
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
44.
ТеорияРеализация наследования в Python
class BaseHuman:
def __init__(self, name, age): # инициализатор класса
self.name = name
# имя
self.age = age
# возраст
def introduce(self):
# вывод информацию об имени и возрасте
print(f'Привет, меня зовут {self.name}!')
print(f'Мой возраст: {self.age}')
# Создаем класс для моделирования программиста
class Programmer(BaseHuman): # Наследуемся от класса BaseHuman
pass
human = BaseHuman(name='Миша', age=25)
# экземпляр класса
proger = Programmer(name='Дима', age=26)
# экземпляр класса
human.introduce() # вызовы метода introduce()
proger.introduce()
# вывод на экран локальных свойств объектов
print(human.__dict__)
print(proger.__dict__)
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
45.
ТеорияРеализация наследования в Python
class BaseHuman:
def __init__(self, name, age): # инициализатор класса
self.name = name
# имя
self.age = age
# возраст
def introduce(self):
# вывод информацию об имени и возрасте
print(f'Привет, меня зовут {self.name}!')
print(f'Мой возраст: {self.age}')
# Создаем класс для моделирования программиста
class Programmer(BaseHuman): # Наследуемся от класса BaseHuman
pass
human = BaseHuman(name='Миша', age=25)
# экземпляр класса
proger = Programmer(name='Дима', age=26)
# экземпляр класса
human.introduce() # вызовы метода introduce()
proger.introduce()
# вывод на экран локальных свойств объектов
print(human.__dict__)
print(proger.__dict__)
>>> {'name': 'Миша', 'age': 25}
{'name': 'Дима', 'age': 26}
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
46.
ТеорияРеализация наследования в Python
class BaseHuman:
def __init__(self, name, age): # инициализатор класса
self.name = name
# имя
self.age = age
# возраст
def introduce(self):
# вывод информацию об имени и возрасте
print(f'Привет, меня зовут {self.name}!')
print(f'Мой возраст: {self.age}')
# Создаем класс для моделирования программиста
class Programmer(BaseHuman): # Наследуемся от класса BaseHuman
pass
human = BaseHuman(name='Миша', age=25)
# экземпляр класса
proger = Programmer(name='Дима', age=26)
# экземпляр класса
human.introduce() # вызовы метода introduce()
proger.introduce()
# вывод на экран локальных свойств объектов
print(human.__dict__)
print(proger.__dict__)
>>> {'name': 'Миша', 'age': 25}
{'name': 'Дима', 'age': 26}
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
47.
ТеорияПереопределение атрибутов и функция super()
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
48.
ТеорияПереопределение атрибутов и функция super()
...
# Создаем класс для моделирования программиста
class Programmer(BaseHuman):
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
49.
ТеорияПереопределение атрибутов и функция super()
...
# Создаем класс для моделирования программиста
class Programmer(BaseHuman):
def coding(self):
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
50.
ТеорияПереопределение атрибутов и функция super()
...
# Создаем класс для моделирования программиста
class Programmer(BaseHuman):
def coding(self):
print(f'Программист {self.name} сейчас пишет код!')
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
51.
ТеорияПереопределение атрибутов и функция super()
...
# Создаем класс для моделирования программиста
class Programmer(BaseHuman):
def coding(self):
print(f'Программист {self.name} сейчас пишет код!’)
human = BaseHuman(name='Миша', age=25)
proger = Programmer(name='Дима', age=26)
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
52.
ТеорияПереопределение атрибутов и функция super()
...
# Создаем класс для моделирования программиста
class Programmer(BaseHuman):
def coding(self):
print(f'Программист {self.name} сейчас пишет код!’)
human = BaseHuman(name='Миша', age=25)
proger = Programmer(name='Дима', age=26)
proger.coding()
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
53.
ТеорияПереопределение атрибутов и функция super()
...
# Создаем класс для моделирования программиста
class Programmer(BaseHuman):
def coding(self):
print(f'Программист {self.name} сейчас пишет код!’)
human = BaseHuman(name='Миша', age=25)
proger = Programmer(name='Дима', age=26)
proger.coding()
>>> Программист Дима сей час пишет код!
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
54.
ТеорияПереопределение атрибутов и функция super()
...
# Создаем класс для моделирования программиста
class Programmer(BaseHuman):
def coding(self):
print(f'Программист {self.name} сейчас пишет код!’)
human = BaseHuman(name='Миша', age=25)
proger = Programmer(name='Дима', age=26)
human.coding()
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
55.
ТеорияПереопределение атрибутов и функция super()
...
# Создаем класс для моделирования программиста
class Programmer(BaseHuman):
def coding(self):
print(f'Программист {self.name} сейчас пишет код!’)
human = BaseHuman(name='Миша', age=25)
proger = Programmer(name='Дима', age=26)
human.coding()
>>> AttributeError: 'BaseHuman' object has no attribute 'coding'
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
56.
ТеорияПереопределение атрибутов и функция super()
...
# Создаем класс для моделирования программиста
class Programmer(BaseHuman):
def coding(self):
print(f'Программист {self.name} сейчас пишет код!’)
Важно!
human = BaseHuman(name='Миша', age=25)
proger = Programmer(name='Дима',
Атрибуты класса наследуютсяage=26)
только от родителя к потомку.
human.coding()
>>> AttributeError: 'BaseHuman' object has no attribute 'coding'
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
57.
ТеорияПереопределение атрибутов и функция super()
...
# Создаем класс для моделирования программиста
class Programmer(BaseHuman):
def coding(self):
print(f'Программист {self.name} сейчас пишет код!’)
human = BaseHuman(name='Миша', age=25)
proger = Programmer(name='Дима', age=26)
human.coding()
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
58.
ТеорияПереопределение атрибутов и функция super()
...
# Создаем класс для моделирования программиста
class Programmer(BaseHuman):
def coding(self):
print(f'Программист {self.name} сейчас пишет код!’)
def __init__(self, name, age, language):
human = BaseHuman(name='Миша', age=25)
proger = Programmer(name='Дима', age=26)
human.coding()
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
59.
ТеорияПереопределение атрибутов и функция super()
...
# Создаем класс для моделирования программиста
class Programmer(BaseHuman):
def coding(self):
print(f'Программист {self.name} сейчас пишет код!’)
def __init__(self, name, age, language):
self.name = name
# имя
human = BaseHuman(name='Миша', age=25)
proger = Programmer(name='Дима', age=26)
human.coding()
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
60.
ТеорияПереопределение атрибутов и функция super()
...
# Создаем класс для моделирования программиста
class Programmer(BaseHuman):
def coding(self):
print(f'Программист {self.name} сейчас пишет код!’)
def __init__(self, name, age, language):
self.name = name
# имя
self.age = age
# возраст
human = BaseHuman(name='Миша', age=25)
proger = Programmer(name='Дима', age=26)
human.coding()
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
61.
ТеорияПереопределение атрибутов и функция super()
...
# Создаем класс для моделирования программиста
class Programmer(BaseHuman):
def coding(self):
print(f'Программист {self.name} сейчас пишет код!’)
def __init__(self, name, age, language):
self.name = name
# имя
self.age = age
# возраст
self.language = language # язык программирования
human = BaseHuman(name='Миша', age=25)
proger = Programmer(name='Дима', age=26)
human.coding()
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
62.
ТеорияПереопределение атрибутов и функция super()
...
# Создаем класс для моделирования программиста
class Programmer(BaseHuman):
def coding(self):
print(f'Программист {self.name} сейчас пишет код!’)
def __init__(self, name, age, language):
self.name = name
# имя
self.age = age
# возраст
self.language = language # язык программирования
human = BaseHuman(name='Миша', age=25)
proger = Programmer(name='Дима', age=26, language='Python')
human.coding()
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
63.
ТеорияПереопределение атрибутов и функция super()
...
# Создаем класс для моделирования программиста
class Programmer(BaseHuman):
def coding(self):
print(f'Программист {self.name} сейчас пишет код!’)
def __init__(self, name, age, language):
self.name = name
# имя
self.age = age
# возраст
self.language = language # язык программирования
human = BaseHuman(name='Миша', age=25)
proger = Programmer(name='Дима', age=26, language='Python')
print(proger.__dict__) # выводим на экран локальные свойства объект proger
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
64.
ТеорияПереопределение атрибутов и функция super()
...
# Создаем класс для моделирования программиста
class Programmer(BaseHuman):
def coding(self):
print(f'Программист {self.name} сейчас пишет код!’)
def __init__(self, name, age, language):
self.name = name
# имя
self.age = age
# возраст
self.language = language # язык программирования
human = BaseHuman(name='Миша', age=25)
proger = Programmer(name='Дима', age=26, language='Python')
print(proger.__dict__) # выводим на экран локальные свойства объект proger
>>> {'name': 'Дима', 'age': 26, 'language': 'Python'}
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
65.
ТеорияПереопределение атрибутов и функция super()
...
# Создаем класс для моделирования программиста
class Programmer(BaseHuman):
def coding(self):
print(f'Программист {self.name} сейчас пишет код!’)
def __init__(self, name, age, language):
super().__init__(name, age) # вызываем метод __init__() из базового класса
self.language = language
# язык программирования
human = BaseHuman(name='Миша', age=25)
proger = Programmer(name='Дима', age=26, language='Python')
print(proger.__dict__) # выводим на экран локальные свойства объект proger
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
66.
ТеорияПереопределение атрибутов и функция super()
...
# Создаем класс для моделирования программиста
class Programmer(BaseHuman):
def coding(self):
print(f'Программист {self.name} сейчас пишет код!’)
def __init__(self, name, age, language):
super().__init__(name, age) # вызываем метод __init__() из базового класса
self.language
= language
# язык программирования
Функция
super() позволяет
обращаться к методам
родительского класса и
использовать внутри дочернего класса. Чаще всего используется для
human
= BaseHuman(name='Миша',
age=25)
переопределения
методов в дочернем
классе.
proger = Programmer(name='Дима', age=26, language='Python')
print(proger.__dict__) # выводим на экран локальные свойства объект proger
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
67.
ТеорияПереопределение атрибутов и функция super()
...
# Создаем класс для моделирования программиста
class Programmer(BaseHuman):
def coding(self):
print(f'Программист {self.name} сейчас пишет код!’)
def __init__(self, name, age, language):
super().__init__(name, age) # вызываем метод __init__() из базового класса
self.language = language
# язык программирования
human = BaseHuman(name='Миша', age=25)
proger = Programmer(name='Дима', age=26, language='Python')
print(proger.__dict__) # выводим на экран локальные свойства объект proger
>>> {'name': 'Дима', 'age': 26, 'language': 'Python'}
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
68.
ТеорияМногоуровневое наследование
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
69.
ТеорияМногоуровневое наследование
BaseHuman
поля класса
методы класса
Programmer
поля класса
методы класса
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
70.
ТеорияМногоуровневое наследование
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
71.
ТеорияМногоуровневое наследование
Многоуровневое наследование – тип наследования, когда у
суперкласса есть подкласс, у которого также есть подкласс. В
результате образуется иерархия наследования из 3 или
более уровней.
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
72.
ТеорияМногоуровневое наследование
BaseHuman
поля класса
методы класса
Programmer
поля класса
методы класса
BackendProgrammer
поля класса
методы класса
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
73.
ТеорияМногоуровневое наследование
class BaseHuman:
def __init__(self, name, age): # инициализатор класса
self.name = name
# имя
self.age = age
# возраст
def introduce(self):
# вывод информацию об имени и возрасте
print(f'Привет, меня зовут {self.name}!')
print(f'Мой возраст: {self.age}')
def walk(self):
# информирование, что человек идет на прогулку
print(f'{self.name} идет на прогулку.')
# Создаем класс для моделирования программиста (итоговая версия)
class Programmer(BaseHuman):
def __init__(self, name, age, language): # инициализатор класса
super().__init__(name, age) # вызываем метод __init__() из базового класса
self.language = language
# язык программирования
def coding(self):
print(f'Программист {self.name} сейчас пишет код!')
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
74.
ТеорияМногоуровневое наследование
class BaseHuman:
def __init__(self, name, age): # инициализатор класса
self.name = name
# имя
self.age = age
# возраст
def introduce(self):
# вывод информацию об имени и возрасте
print(f'Привет, меня зовут {self.name}!')
print(f'Мой возраст: {self.age}')
def walk(self):
# информирование, что человек идет на прогулку
print(f'{self.name} идет на прогулку.')
# Создаем класс для моделирования программиста (итоговая версия)
class Programmer(BaseHuman):
def __init__(self, name, age, language): # инициализатор класса
super().__init__(name, age) # вызываем метод __init__() из базового класса
self.language = language
# язык программирования
def coding(self):
print(f'Программист {self.name} сейчас пишет код!')
class BackendProgrammer(Programmer):
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
75.
ТеорияМногоуровневое наследование
class BaseHuman:
def __init__(self, name, age): # инициализатор класса
self.name = name
# имя
self.age = age
# возраст
def introduce(self):
# вывод информацию об имени и возрасте
print(f'Привет, меня зовут {self.name}!')
print(f'Мой возраст: {self.age}')
def walk(self):
# информирование, что человек идет на прогулку
print(f'{self.name} идет на прогулку.')
# Создаем класс для моделирования программиста (итоговая версия)
class Programmer(BaseHuman):
def __init__(self, name, age, language): # инициализатор класса
super().__init__(name, age) # вызываем метод __init__() из базового класса
self.language = language
# язык программирования
def coding(self):
print(f'Программист {self.name} сейчас пишет код!')
class BackendProgrammer(Programmer):
pass
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
76.
ТеорияМногоуровневое наследование
class BaseHuman:
def __init__(self, name, age): # инициализатор класса
self.name = name
# имя
self.age = age
# возраст
def introduce(self):
# вывод информацию об имени и возрасте
print(f'Привет, меня зовут {self.name}!')
print(f'Мой возраст: {self.age}')
def walk(self):
# информирование, что человек идет на прогулку
print(f'{self.name} идет на прогулку.')
# Создаем класс для моделирования программиста (итоговая версия)
class Programmer(BaseHuman):
def __init__(self, name, age, language): # инициализатор класса
super().__init__(name, age) # вызываем метод __init__() из базового класса
self.language = language
# язык программирования
def coding(self):
print(f'Программист {self.name} сейчас пишет код!')
class BackendProgrammer(Programmer):
pass
# экземпляр класса BackendProgrammer
backproger = BackendProgrammer(name='Иван', age=27, language='C++')
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
77.
ТеорияМногоуровневое наследование
class BaseHuman:
def __init__(self, name, age): # инициализатор класса
self.name = name
# имя
self.age = age
# возраст
def introduce(self):
# вывод информацию об имени и возрасте
print(f'Привет, меня зовут {self.name}!')
print(f'Мой возраст: {self.age}')
def walk(self):
# информирование, что человек идет на прогулку
print(f'{self.name} идет на прогулку.')
# Создаем класс для моделирования программиста (итоговая версия)
class Programmer(BaseHuman):
def __init__(self, name, age, language): # инициализатор класса
super().__init__(name, age) # вызываем метод __init__() из базового класса
self.language = language
# язык программирования
def coding(self):
print(f'Программист {self.name} сейчас пишет код!')
class BackendProgrammer(Programmer):
pass
# экземпляр класса BackendProgrammer
backproger = BackendProgrammer(name='Иван', age=27, language='C++')
print(backproger.__dict__) # выводим на экран локальные свойства объект backproger
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
78.
ТеорияМногоуровневое наследование
class BaseHuman:
def __init__(self, name, age): # инициализатор класса
self.name = name
# имя
self.age = age
# возраст
def introduce(self):
# вывод информацию об имени и возрасте
print(f'Привет, меня зовут {self.name}!')
print(f'Мой возраст: {self.age}')
def walk(self):
# информирование, что человек идет на прогулку
print(f'{self.name} идет на прогулку.')
# Создаем класс для моделирования программиста (итоговая версия)
class Programmer(BaseHuman):
def __init__(self, name, age, language): # инициализатор класса
super().__init__(name, age) # вызываем метод __init__() из базового класса
self.language = language
# язык программирования
def coding(self):
print(f'Программист {self.name} сейчас пишет код!')
class BackendProgrammer(Programmer):
pass
# экземпляр класса BackendProgrammer
backproger = BackendProgrammer(name='Иван', age=27, language='C++')
print(backproger.__dict__) # выводим на экран локальные свойства объект backproger
>>> {'name': 'Иван', 'age': 27, 'language': 'C++'}
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
79.
ТеорияМногоуровневое наследование
class BaseHuman:
def __init__(self, name, age): # инициализатор класса
self.name = name
# имя
self.age = age
# возраст
def introduce(self):
# вывод информацию об имени и возрасте
print(f'Привет, меня зовут {self.name}!')
print(f'Мой возраст: {self.age}')
def walk(self):
# информирование, что человек идет на прогулку
print(f'{self.name} идет на прогулку.')
# Создаем класс для моделирования программиста (итоговая версия)
class Programmer(BaseHuman):
def __init__(self, name, age, language): # инициализатор класса
super().__init__(name, age) # вызываем метод __init__() из базового класса
self.language = language
# язык программирования
def coding(self):
print(f'Программист {self.name} сейчас пишет код!')
class BackendProgrammer(Programmer):
pass
# экземпляр класса BackendProgrammer
backproger = BackendProgrammer(name='Иван', age=27, language='C++')
print(backproger.__dict__) # выводим на экран локальные свойства объект backproger
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
80.
ТеорияМногоуровневое наследование
class BaseHuman:
def __init__(self, name, age): # инициализатор класса
self.name = name
# имя
self.age = age
# возраст
def introduce(self):
# вывод информацию об имени и возрасте
print(f'Привет, меня зовут {self.name}!')
print(f'Мой возраст: {self.age}')
def walk(self):
# информирование, что человек идет на прогулку
print(f'{self.name} идет на прогулку.')
# Создаем класс для моделирования программиста (итоговая версия)
class Programmer(BaseHuman):
def __init__(self, name, age, language): # инициализатор класса
super().__init__(name, age) # вызываем метод __init__() из базового класса
self.language = language
# язык программирования
def coding(self):
print(f'Программист {self.name} сейчас пишет код!')
class BackendProgrammer(Programmer):
pass
# экземпляр класса BackendProgrammer
backproger = BackendProgrammer(name='Иван', age=27, language='C++')
print(backproger.__dict__) # выводим на экран локальные свойства объект backproger
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
81.
ТеорияПереопределение атрибутов и функция super()
class BaseHuman:
def __init__(self, name, age): # инициализатор класса
self.name = name
# имя
self.age = age
# возраст
def introduce(self):
# вывод информацию об имени и возрасте
print(f'Привет, меня зовут {self.name}!')
print(f'Мой возраст: {self.age}')
def walk(self):
# информирование, что человек идет на прогулку
print(f'{self.name} идет на прогулку.')
# Создаем класс для моделирования программиста (итоговая версия)
class Programmer(BaseHuman):
def __init__(self, name, age, language): # инициализатор класса
super().__init__(name, age) # вызываем метод __init__() из базового класса
self.language = language
# язык программирования
def coding(self):
print(f'Программист {self.name} сейчас пишет код!')
class BackendProgrammer(Programmer):
pass
# экземпляр класса BackendProgrammer
backproger = BackendProgrammer(name='Иван', age=27, language='C++')
print(backproger.__dict__) # выводим на экран локальные свойства объект backproger
backproger.walk()
# вызов метода walk() для объекта backproger
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
82.
ТеорияПереопределение атрибутов и функция super()
class BaseHuman:
def __init__(self, name, age): # инициализатор класса
self.name = name
# имя
self.age = age
# возраст
def introduce(self):
# вывод информацию об имени и возрасте
print(f'Привет, меня зовут {self.name}!')
print(f'Мой возраст: {self.age}')
def walk(self):
# информирование, что человек идет на прогулку
print(f'{self.name} идет на прогулку.')
# Создаем класс для моделирования программиста (итоговая версия)
class Programmer(BaseHuman):
def __init__(self, name, age, language): # инициализатор класса
super().__init__(name, age) # вызываем метод __init__() из базового класса
self.language = language
# язык программирования
def coding(self):
print(f'Программист {self.name} сейчас пишет код!')
class BackendProgrammer(Programmer):
pass
# экземпляр класса BackendProgrammer
backproger = BackendProgrammer(name='Иван', age=27, language='C++')
print(backproger.__dict__) # выводим на экран локальные свойства объект backproger
backproger.walk()
# вызов метода walk() для объекта backproger
>>> Иван идет на прогулку.
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
83.
ТеорияПереопределение атрибутов и функция super()
class BaseHuman:
def __init__(self, name, age): # инициализатор класса
self.name = name
# имя
self.age = age
# возраст
def introduce(self):
# вывод информацию об имени и возрасте
print(f'Привет, меня зовут {self.name}!')
print(f'Мой возраст: {self.age}')
def walk(self):
# информирование, что человек идет на прогулку
print(f'{self.name} идет на прогулку.')
При
многоуровневом
наследовании
методы
вызываются
согласно построенной
# Создаем класс для моделирования
программиста
(итоговая
версия)
иерархии
классов.
class
Programmer(BaseHuman):
def __init__(self, name, age, language): # инициализатор класса
super().__init__(name, age) # вызываем метод __init__() из базового класса
self.language = language
# язык программирования
def coding(self):
print(f'Программист {self.name} сейчас пишет код!')
class BackendProgrammer(Programmer):
pass
# экземпляр класса BackendProgrammer
backproger = BackendProgrammer(name='Иван', age=27, language='C++')
print(backproger.__dict__) # выводим на экран локальные свойства объект backproger
backproger.walk()
# вызов метода walk() для объекта backproger
>>> Иван идет на прогулку.
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
84.
ТеорияФункции issubclass() и isinstance()
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
85.
ТеорияФункции issubclass() и isinstance()
...
# проверяем, что класс BackendProgrammer является подклассом для Programmer
print(issubclass(BackendProgrammer, Programmer))
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
86.
ТеорияФункции issubclass() и isinstance()
...
# проверяем, что класс BackendProgrammer является подклассом для Programmer
print(issubclass(BackendProgrammer, Programmer))
>>> True
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
87.
ТеорияФункции issubclass() и isinstance()
issubclass() – функция, позволяющая проверить, является ли класс наследником
другого класса, возвращая True или False. Учитывает иерархию наследования
классов.
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
88.
ТеорияФункции issubclass() и isinstance()
...
# проверяем, что класс BackendProgrammer является подклассом для Programmer
print(issubclass(BackendProgrammer, Programmer))
# проверяем, что класс BackendProgrammer является подклассом для BaseHuman
print(issubclass(BackendProgrammer, BaseHuman))
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
89.
ТеорияФункции issubclass() и isinstance()
...
# проверяем, что класс BackendProgrammer является подклассом для Programmer
print(issubclass(BackendProgrammer, Programmer))
# проверяем, что класс BackendProgrammer является подклассом для BaseHuman
print(issubclass(BackendProgrammer, BaseHuman))
>>> True
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
90.
ТеорияФункции issubclass() и isinstance()
...
# проверяем, что класс BackendProgrammer является подклассом для Programmer
print(issubclass(BackendProgrammer, Programmer))
# проверяем, что класс BackendProgrammer является подклассом для BaseHuman
print(issubclass(BackendProgrammer, BaseHuman))
# выводим на экран базовый класс для класса Programmer
print(Programmer.__base__)
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
91.
ТеорияФункции issubclass() и isinstance()
...
# проверяем, что класс BackendProgrammer является подклассом для Programmer
print(issubclass(BackendProgrammer, Programmer))
# проверяем, что класс BackendProgrammer является подклассом для BaseHuman
print(issubclass(BackendProgrammer, BaseHuman))
# выводим на экран базовый класс для класса Programmer
print(Programmer.__base__)
>>> <class '__main__.BaseHuman'>
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
92.
ТеорияФункции issubclass() и isinstance()
issubclass() – функция, позволяющая проверить, является ли класс наследником
другого класса, возвращая True или False. Учитывает иерархию наследования
классов.
__base__ - атрибут, возвращающий базовый класс для указанного класса
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
93.
ТеорияФункции issubclass() и isinstance()
...
# проверяем, что класс BackendProgrammer является подклассом для Programmer
print(issubclass(BackendProgrammer, Programmer))
# проверяем, что класс BackendProgrammer является подклассом для BaseHuman
print(issubclass(BackendProgrammer, BaseHuman))
# выводим на экран базовый класс для класса Programmer
print(Programmer.__base__)
# выводим на экран базовый класс для класса BaseHuman
print(BaseHuman.__base__)
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
94.
ТеорияФункции issubclass() и isinstance()
...
# проверяем, что класс BackendProgrammer является подклассом для Programmer
print(issubclass(BackendProgrammer, Programmer))
# проверяем, что класс BackendProgrammer является подклассом для BaseHuman
print(issubclass(BackendProgrammer, BaseHuman))
# выводим на экран базовый класс для класса Programmer
print(Programmer.__base__)
# выводим на экран базовый класс для класса BaseHuman
print(BaseHuman.__base__)
>>> <<class 'object'>
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
95.
ТеорияМногоуровневое наследование
object
поля класса
методы класса
BaseHuman
поля класса
методы класса
Programmer
поля класса
методы класса
BackendProgrammer
поля класса
методы класса
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
96.
ТеорияФункции issubclass() и isinstance()
issubclass() – функция, позволяющая проверить, является ли класс наследником
другого класса, возвращая True или False. Учитывает иерархию наследования
классов.
__base__ – атрибут, возвращающий базовый класс для указанного класса
object – класс, являющийся базовым для всех классов в языке Python.
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
97.
ТеорияФункции issubclass() и isinstance()
...
# проверяем, что класс BackendProgrammer является подклассом для Programmer
print(issubclass(BackendProgrammer, Programmer))
# проверяем, что класс BackendProgrammer является подклассом для BaseHuman
print(issubclass(BackendProgrammer, BaseHuman))
# выводим на экран базовый класс для класса Programmer
print(Programmer.__base__)
# выводим на экран базовый класс для класса BaseHuman
print(BaseHuman.__base__)
# проверяем, что Programmer и BackendProgrammer являются подклассами для object
print(issubclass(Programmer, object))
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
98.
ТеорияФункции issubclass() и isinstance()
...
# проверяем, что класс BackendProgrammer является подклассом для Programmer
print(issubclass(BackendProgrammer, Programmer))
# проверяем, что класс BackendProgrammer является подклассом для BaseHuman
print(issubclass(BackendProgrammer, BaseHuman))
# выводим на экран базовый класс для класса Programmer
print(Programmer.__base__)
# выводим на экран базовый класс для класса BaseHuman
print(BaseHuman.__base__)
# проверяем, что Programmer и BackendProgrammer являются подклассами для object
print(issubclass(Programmer, object))
print(issubclass(BackendProgrammer, object))
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
99.
ТеорияФункции issubclass() и isinstance()
...
# проверяем, что класс BackendProgrammer является подклассом для Programmer
print(issubclass(BackendProgrammer, Programmer))
# проверяем, что класс BackendProgrammer является подклассом для BaseHuman
print(issubclass(BackendProgrammer, BaseHuman))
# выводим на экран базовый класс для класса Programmer
print(Programmer.__base__)
# выводим на экран базовый класс для класса BaseHuman
print(BaseHuman.__base__)
# проверяем, что Programmer и BackendProgrammer являются подклассами для object
print(issubclass(Programmer, object))
print(issubclass(BackendProgrammer, object))
>>> True
True
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
100.
ТеорияФункции issubclass() и isinstance()
...
# проверяем, что класс BackendProgrammer является подклассом для Programmer
print(issubclass(BackendProgrammer, Programmer))
# проверяем, что класс BackendProgrammer является подклассом для BaseHuman
print(issubclass(BackendProgrammer, BaseHuman))
# выводим на экран базовый класс для класса Programmer
print(Programmer.__base__)
# выводим на экран базовый класс для класса BaseHuman
print(BaseHuman.__base__)
# проверяем, что Programmer и BackendProgrammer являются подклассами для object
print(issubclass(Programmer, object))
print(issubclass(BackendProgrammer, object))
# проверяем, что proger является экземпляром класса Programmer
print(isinstance(proger, Programmer))
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
101.
ТеорияФункции issubclass() и isinstance()
...
# проверяем, что класс BackendProgrammer является подклассом для Programmer
print(issubclass(BackendProgrammer, Programmer))
# проверяем, что класс BackendProgrammer является подклассом для BaseHuman
print(issubclass(BackendProgrammer, BaseHuman))
# выводим на экран базовый класс для класса Programmer
print(Programmer.__base__)
# выводим на экран базовый класс для класса BaseHuman
print(BaseHuman.__base__)
# проверяем, что Programmer и BackendProgrammer являются подклассами для object
print(issubclass(Programmer, object))
print(issubclass(BackendProgrammer, object))
# проверяем, что proger является экземпляром класса Programmer
print(isinstance(proger, Programmer))
>>> True
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
102.
ТеорияФункции issubclass() и isinstance()
...
# проверяем, что класс BackendProgrammer является подклассом для Programmer
print(issubclass(BackendProgrammer, Programmer))
# проверяем, что класс BackendProgrammer является подклассом для BaseHuman
print(issubclass(BackendProgrammer, BaseHuman))
# выводим на экран базовый класс для класса Programmer
print(Programmer.__base__)
# выводим на экран базовый класс для класса BaseHuman
print(BaseHuman.__base__)
# проверяем, что Programmer и BackendProgrammer являются подклассами для object
print(issubclass(Programmer, object))
print(issubclass(BackendProgrammer, object))
# проверяем, что proger является экземпляром класса Programmer
print(isinstance(proger, Programmer))
# проверяем, что proger является экземпляром класса BaseHuman
print(isinstance(proger, BaseHuman))
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
103.
ТеорияФункции issubclass() и isinstance()
...
# проверяем, что класс BackendProgrammer является подклассом для Programmer
print(issubclass(BackendProgrammer, Programmer))
# проверяем, что класс BackendProgrammer является подклассом для BaseHuman
print(issubclass(BackendProgrammer, BaseHuman))
# выводим на экран базовый класс для класса Programmer
print(Programmer.__base__)
# выводим на экран базовый класс для класса BaseHuman
print(BaseHuman.__base__)
# проверяем, что Programmer и BackendProgrammer являются подклассами для object
print(issubclass(Programmer, object))
print(issubclass(BackendProgrammer, object))
# проверяем, что proger является экземпляром класса Programmer
print(isinstance(proger, Programmer))
# проверяем, что proger является экземпляром класса BaseHuman
print(isinstance(proger, BaseHuman))
>>> True
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
104.
ТеорияФункции issubclass() и isinstance()
issubclass() – функция, позволяющая проверить, является ли класс наследником
другого класса, возвращая True или False. Учитывает иерархию наследования
классов.
__base__ – атрибут, возвращающий базовый класс для указанного класса
object – класс, являющийся базовым для всех классов в языке Python.
isinstance() – функция, позволяющая проверить, является ли объект прямым или
косвенным экземпляром другого класса, возвращая True или False. Учитывает
иерархию наследования классов.
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
105.
ИТОГ©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
106.
ИТОГВ чем заключается главная задача наследования?
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
107.
ИТОГВ чем заключается главная задача наследования?
Главная задача наследования – уменьшение дублирования кода и создание
удобной для использования иерархии классов.
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
108.
ИТОГВ чем заключается главная задача наследования?
Главная задача наследования – уменьшение дублирования кода и создание
удобной для использования иерархии классов.
С помощью какой функции можно удобно переопределять метод __init__()?
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
109.
ИТОГВ чем заключается главная задача наследования?
Главная задача наследования – уменьшение дублирования кода и создание
удобной для использования иерархии классов.
С помощью какой функции можно удобно переопределять метод __init__()?
С помощью функции super()
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
110.
ИТОГВ чем заключается главная задача наследования?
Главная задача наследования – уменьшение дублирования кода и создание
удобной для использования иерархии классов.
С помощью какой функции можно удобно переопределять метод __init__()?
С помощью функции super()
Что такое многоуровневое наследование?
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
111.
ИТОГВ чем заключается главная задача наследования?
Главная задача наследования – уменьшение дублирования кода и создание
удобной для использования иерархии классов.
С помощью какой функции можно удобно переопределять метод __init__()?
С помощью функции super()
Что такое многоуровневое наследование?
Многоуровневое наследование - тип наследования, когда у суперкласса
есть подкласс, у которого также есть подкласс. В результате образуется
иерархия наследования из 3 или более уровней.
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
112.
ИТОГВ чем заключается главная задача наследования?
Главная задача наследования – уменьшение дублирования кода и создание
удобной для использования иерархии классов.
С помощью какой функции можно удобно переопределять метод __init__()?
С помощью функции super()
Что такое многоуровневое наследование?
Многоуровневое наследование - тип наследования, когда у суперкласса
есть подкласс, у которого также есть подкласс. В результате образуется
иерархия наследования из 3 или более уровней.
Для чего нужна функция issubclass()?
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
113.
ИТОГВ чем заключается главная задача наследования?
Главная задача наследования – уменьшение дублирования кода и создание
удобной для использования иерархии классов.
С помощью какой функции можно удобно переопределять метод __init__()?
С помощью функции super()
Что такое многоуровневое наследование?
Многоуровневое наследование - тип наследования, когда у суперкласса
есть подкласс, у которого также есть подкласс. В результате образуется
иерархия наследования из 3 или более уровней.
Для чего нужна функция issubclass()?
Функция issubclass() позволяет узнать, является ли класс наследником
другого класса
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
114.
ИТОГВ чем заключается главная задача наследования?
Главная задача наследования – уменьшение дублирования кода и создание
удобной для использования иерархии классов.
С помощью какой функции можно удобно переопределять метод __init__()?
С помощью функции super()
Что такое многоуровневое наследование?
Многоуровневое наследование - тип наследования, когда у суперкласса
есть подкласс, у которого также есть подкласс. В результате образуется
иерархия наследования из 3 или более уровней.
Для чего нужна функция issubclass()?
Функция issubclass() позволяет узнать, является ли класс наследником
другого класса
Что можно узнать с помощью атрибута __base__?
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
115.
ИТОГВ чем заключается главная задача наследования?
Главная задача наследования – уменьшение дублирования кода и создание
удобной для использования иерархии классов.
С помощью какой функции можно удобно переопределять метод __init__()?
С помощью функции super()
Что такое многоуровневое наследование?
Многоуровневое наследование - тип наследования, когда у суперкласса
есть подкласс, у которого также есть подкласс. В результате образуется
иерархия наследования из 3 или более уровней.
Для чего нужна функция issubclass()?
Функция issubclass() позволяет узнать, является ли класс наследником
другого класса
Что можно узнать с помощью атрибута __base__?
Атрибут __base__ позволяет узнать базовый класс для указанного класса
©2023 ООО «Юмакс». Все права защищены. Любое использование материалов допускается только с письменного согласия компании
116.
DSПрограммирование
Python
Спасибо за внимание!