
- •СОДЕРЖАНИЕ
- •ОСНОВЫ ООП В PYTHON
- •КЛАССЫ, АТРИБУТЫ, МЕТОДЫ
- •КОНСТРУКТОР
- •ДЕСТРУКТОР
- •ДАННЫЕ ЭКЗЕМПЛЯРА И КЛАССА
- •НАСЛЕДОВАНИЕ
- •НАСТРОЙКА ЧЕРЕЗ НАСЛЕДОВАНИЕ
- •НАСТРОЙКА ЧЕРЕЗ НАСЛЕДОВАНИЕ
- •БИБЛИОТЕКА NumPy
- •NumPy: СОЗДАНИЕ МАССИВОВ
- •NumPy: МАНИПУЛИРОВАНИЕ МАССИВАМИ
- •NumPy: ОПЕРАЦИИ С ДАННЫМИ
- •NumPy: СЛОЖНЫЕ ВЫЧИСЛЕНИЯ
- •БИБЛИОТЕКА Matplotlib
- •Matplotlib: СОЗДАНИЕ ПРОСТЕЙШИХ ГРАФИКОВ
- •Matplotlib: ВНЕШНИЙ ВИД ГРАФИКОВ
- •Matplotlib: ИСПОЛЬЗОВАНИЕ ВМЕСТЕ С NumPy
- •БИБЛИОТЕКА PyQt
- •РАЗРАБОТКА GUI: C++ vs PyQt
- •PyQt: РАЗМЕЩЕНИЕ ВИДЖЕТОВ
- •PyQt: ОБРАБОТКА СИГНАЛОВ
- •PyQt: ИЕРАРХИЯ КЛАССОВ И ВИДЖЕТОВ
- •PyQt: ВИДЖЕТ ОКНА QMainWindow
- •PyQt: СОЗДАНИЕ МЕНЮ И ДЕЙСТВИЯ
- •PyQt: СТРОКА СОСТОЯНИЯ И ПАНЕЛЬ ИНСТРУМЕНТОВ
- •PyQt: РАЗМЕЩЕНИЕ ВИДЖЕТОВ И ДИАЛОГОВЫЕ ОКНА
- •ЗАДАНИЕ НА ЛАБОРАТОРНУЮ РАБОТУ
- •ЗАДАНИЕ НА ЛАБОРАТОРНУЮ РАБОТУ

КУРС: ИНТЕРПРЕТИРУЕМЫЕ ЯЗЫКИ ПРОГРАММИРОВАНИЯ
Лекция 8. Объектно-ориентированный подход к разработке кода на Python
Калашников Вячеслав Сергеевич
Старший преподаватель института ИнЭл, Начальник отдела развития САПР и перспективных разработок ООО ʺНМ-Техʺ, к.т.н.
vkalashnikov@nm-tech.org

СОДЕРЖАНИЕ
|
1. |
Основы ООП в Python |
3 |
|
2. |
Классы, атрибуты, методы |
4 |
|
3. |
Конструктор |
5 |
|
4. |
Деструктор |
6 |
|
5. |
Данные экземпляра и класса |
7 |
|
6. |
Наследование |
8 |
|
7. |
Настройка через наследование |
9 |
|
8. |
Библиотека NumPy |
11 |
|
9. |
NumPy: работа с массивами |
12 |
|
10. |
NumPy: сложные вычисления |
15 |
|
11. |
Библиотека Matplotlib |
16 |
|
12. |
Matplotlib: использование вместе с NumPy |
19 |
|
13. |
Библиотека PyQt |
20 |
|
14. |
PyQt: размещение виджетов |
22 |
|
15. |
PyQt: обработка сигналов |
23 |
|
16. |
PyQt: иерархия классов и виджетов |
24 |
|
17. |
PyQt: виджет окна QMainWindow |
25 |
|
18. |
PyQt: создание меню и действия |
26 |
2 |
19. |
PyQt: строка состояния и панель инструментов |
27 |
20. |
PyQt: размещение виджетов и диалоговые окна |
28 |

ОСНОВЫ ООП В PYTHON
Процедурноепрограммирование: |
Объектно-ориентированноепрограммирование: |
|||
|
кодкаквзаимодействиеобъектов |
|||
|
кодкакпоследовательностьшагов |
|||
|
подходитдляпостроенияинтегрированныхсистемитулов |
|||
|
подходитдляанализаданных |
|||
|
поддерживаемый и пригодный для повторного |
|||
|
|
использованиякод
Классыиобъекты – фундаментальныепонятияиглавныеинструментыООПв Python. Объект – этоструктураданных, содержащаяинформациюосостоянии иповедении:
Класс – проект или чертеж для объектов, описывающий возможные состояния и поведение, которые может иметь каждый объект данного класса
Объект = состояние + поведение (инкапсуляция)
Атрибуты Методы
|
>>> |
a = 5 |
Переменные |
Функции |
|
obj.attribute |
obj.method() |
||
|
>>> |
type(a) |
|
|
|
<class ’int’> |
|
|
|
|
>>> |
dir(a) |
…, ’__xor__’, |
’bit_length’, |
3 |
[’__abs__’, ’__add__’, |
|||
’conjugate’, ’denominator’, ’image’, ’numerator’, ’real’] |

КЛАССЫ, АТРИБУТЫ, МЕТОДЫ
Объявлениекласса: class <имя_класса>:
определение_класса
Пустой класс:
class empty_class: pass
>>> o1 = empty_class()
Класс Customer: class Customer:
def identify(self, name): print(ʺI am Customer ʺ + name)
>>>с1 = Customer()
>>>c1.identify(ʺMariaʺ) c1.identify(c1, ʺMariaʺ)
I am Customer Maria
4
Добавлениеатрибутов: class Customer:
def set_name(self, new_name): self.name = new_name
>>>с1 = Customer()
>>>c1.set_name(ʺOlgaʺ)
>>>print(c1.name)
Olga
Всёвместе (атрибутыиметоды): class Customer:
def set_name(self, new_name): self.name = new_name
def identify(self):
print(ʺI am Customer ʺ + self.name)
>>>с1 = Customer()
>>>c1.set_name(ʺIvan Petrovʺ)
>>>c1.identify()
I am Customer Ivan Petrov

КОНСТРУКТОР
Конструктор– специальныйметод _ _init_ _, вызываемыйавтоматическикаждыйразприсозданииобъекта
Конструктордлякласса Customer: |
Конструкторсдвумяпараметрами: |
||
class Customer: |
class Customer: |
||
def __init__(self, name): |
|
def __init__(self, name, balance=0): |
|
self.name = name |
|
self.name = name |
|
print(ʺThe __init__ method was calledʺ) |
self.balance = balance |
||
>>> с1 = Customer(ʺMariaʺ) |
|
print(ʺThe __init__ method was calledʺ) |
|
>>> с1 = Customer(ʺOlgaʺ) |
|||
The __init__ method was called |
|||
>>> print(c1.name) |
The __init__ method was called |
||
Maria |
>>> |
print(c1.name) |
|
|
Olga |
||
|
>>> |
print(c1.balance) |
|
|
0 |
|
Документированиеклассов: class Customer:
ʺʺʺThis class describes customersʺʺʺ
…
5