Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab8 / Лекция 8. Объектно-ориентированный подход к разработке кода на Python.pdf
Скачиваний:
1
Добавлен:
30.05.2025
Размер:
1.79 Mб
Скачать

КУРС: ИНТЕРПРЕТИРУЕМЫЕ ЯЗЫКИ ПРОГРАММИРОВАНИЯ

Лекция 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