0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<ul><li><a>Преимущества и недостатки языка</a><ul><li><a>Недостатки</a></li>
1
<ul><li><a>Преимущества и недостатки языка</a><ul><li><a>Недостатки</a></li>
2
</ul></li>
2
</ul></li>
3
<li><a>Сферы применения</a></li>
3
<li><a>Сферы применения</a></li>
4
<li><a>Ключевая терминология - что знать каждому</a></li>
4
<li><a>Ключевая терминология - что знать каждому</a></li>
5
<li><a>Объектно-ориентированное программирование</a><ul><li><a>Принципы ООП</a><ul><li><a>Абстракция</a></li>
5
<li><a>Объектно-ориентированное программирование</a><ul><li><a>Принципы ООП</a><ul><li><a>Абстракция</a></li>
6
<li><a>Полиморфизм</a></li>
6
<li><a>Полиморфизм</a></li>
7
<li><a>Немного о наследовании</a></li>
7
<li><a>Немного о наследовании</a></li>
8
<li><a>Инкапсуляция</a></li>
8
<li><a>Инкапсуляция</a></li>
9
</ul></li>
9
</ul></li>
10
</ul></li>
10
</ul></li>
11
<li><a>Работа с классами</a><ul><li><a>Создание</a></li>
11
<li><a>Работа с классами</a><ul><li><a>Создание</a></li>
12
<li><a>Конструктор</a></li>
12
<li><a>Конструктор</a></li>
13
<li><a>Об атрибутах</a></li>
13
<li><a>Об атрибутах</a></li>
14
</ul></li>
14
</ul></li>
15
<li><a>Методы</a><ul><li><a>Self - что это</a></li>
15
<li><a>Методы</a><ul><li><a>Self - что это</a></li>
16
<li><a>Доступ и декораторы</a></li>
16
<li><a>Доступ и декораторы</a></li>
17
</ul></li>
17
</ul></li>
18
<li><a>Объекты и экземпляры</a><ul><li><a>Что там с атрибутами</a></li>
18
<li><a>Объекты и экземпляры</a><ul><li><a>Что там с атрибутами</a></li>
19
<li><a>Наследование</a></li>
19
<li><a>Наследование</a></li>
20
</ul></li>
20
</ul></li>
21
</ul><p>Среди востребованных языков программирования сегодня выделяется Питон. Он относится к высокоуровневым, со строгой типизацией данных. Python имеет мощный функционал, который позволяет управлять памятью устройства при компиляции программного обеспечения.</p>
21
</ul><p>Среди востребованных языков программирования сегодня выделяется Питон. Он относится к высокоуровневым, со строгой типизацией данных. Python имеет мощный функционал, который позволяет управлять памятью устройства при компиляции программного обеспечения.</p>
22
<p>Язык имеет понятный и простой синтаксис, а также выделение блоков кодификации посредством отступов. Последние помогают определять вложенность операций и функций.</p>
22
<p>Язык имеет понятный и простой синтаксис, а также выделение блоков кодификации посредством отступов. Последние помогают определять вложенность операций и функций.</p>
23
<p>Для того, чтобы писать на Питоне приложения, нужно не только хорошо знать его особенности, но и использовать классы, объекты, а также наследование и полиморфизм. Все это необходимо усвоить каждому разработчику.</p>
23
<p>Для того, чтобы писать на Питоне приложения, нужно не только хорошо знать его особенности, но и использовать классы, объекты, а также наследование и полиморфизм. Все это необходимо усвоить каждому разработчику.</p>
24
<p>В данной статье речь зайдет об особенностях Python, сферах его применения на практике. Будет разобран принцип составления кода, а также работа с классами и объектами. Предложенную информацию сможет использовать как новичок, так и опытный программист.</p>
24
<p>В данной статье речь зайдет об особенностях Python, сферах его применения на практике. Будет разобран принцип составления кода, а также работа с классами и объектами. Предложенную информацию сможет использовать как новичок, так и опытный программист.</p>
25
<h2>Преимущества и недостатки языка</h2>
25
<h2>Преимущества и недостатки языка</h2>
26
<p>Существующие данные указывают на то, что Питон - популярный и удобный язык программирования. Он выделяется:</p>
26
<p>Существующие данные указывают на то, что Питон - популярный и удобный язык программирования. Он выделяется:</p>
27
<ul><li>наличием концепций объектно-ориентированного программирования;</li>
27
<ul><li>наличием концепций объектно-ориентированного программирования;</li>
28
<li>мощным функционалом;</li>
28
<li>мощным функционалом;</li>
29
<li>понятным даже новичкам синтаксисом, в основе которого заложен английский;</li>
29
<li>понятным даже новичкам синтаксисом, в основе которого заложен английский;</li>
30
<li>полиморфизмом;</li>
30
<li>полиморфизмом;</li>
31
<li>работой с классами и объектами;</li>
31
<li>работой с классами и объектами;</li>
32
<li>высокой востребованностью;</li>
32
<li>высокой востребованностью;</li>
33
<li>кроссплатформенностью - с его помощью удастся написать софт под любую платформу;</li>
33
<li>кроссплатформенностью - с его помощью удастся написать софт под любую платформу;</li>
34
<li>совместимостью со всеми современными операционными системами;</li>
34
<li>совместимостью со всеми современными операционными системами;</li>
35
<li>открытым исходным кодом;</li>
35
<li>открытым исходным кодом;</li>
36
<li>бесплатным распространением.</li>
36
<li>бесплатным распространением.</li>
37
</ul><p>Найти разработчика, который специализируется только на Python крайне трудно. Такие специалисты востребованы на рынке труда по всему миру.</p>
37
</ul><p>Найти разработчика, который специализируется только на Python крайне трудно. Такие специалисты востребованы на рынке труда по всему миру.</p>
38
<h3>Недостатки</h3>
38
<h3>Недостатки</h3>
39
<p>К минусам языка относят:</p>
39
<p>К минусам языка относят:</p>
40
<ul><li>относительно медленную работу;</li>
40
<ul><li>относительно медленную работу;</li>
41
<li>отсутствие большого количества перспектив для процессорной оптимизации.</li>
41
<li>отсутствие большого количества перспектив для процессорной оптимизации.</li>
42
</ul><p>Это приводит к тому, что для крупных и масштабных, "тяжелых" проектов Питон не подходит. Такие утилиты будут загружать операционную систему и тормозить ее. Но, если удастся решить проблему дефицита возможностей для статического анализа кода, на выходе будет безопасное и надежное приложение.</p>
42
</ul><p>Это приводит к тому, что для крупных и масштабных, "тяжелых" проектов Питон не подходит. Такие утилиты будут загружать операционную систему и тормозить ее. Но, если удастся решить проблему дефицита возможностей для статического анализа кода, на выходе будет безопасное и надежное приложение.</p>
43
<h2>Сферы применения</h2>
43
<h2>Сферы применения</h2>
44
<p>Прежде чем разбирать классы и объекты в Python, а также иные особенности ООП, нужно выяснить, где соответствующий язык применяется. Он имеет общее назначение, что позволяет задействовать оный в разных в случае, когда требуется написать:</p>
44
<p>Прежде чем разбирать классы и объекты в Python, а также иные особенности ООП, нужно выяснить, где соответствующий язык применяется. Он имеет общее назначение, что позволяет задействовать оный в разных в случае, когда требуется написать:</p>
45
<ul><li>веб-страницу;</li>
45
<ul><li>веб-страницу;</li>
46
<li>браузерный софт;</li>
46
<li>браузерный софт;</li>
47
<li>игры (мобильные, компьютерные);</li>
47
<li>игры (мобильные, компьютерные);</li>
48
<li>ПО для бизнес-аналитики;</li>
48
<li>ПО для бизнес-аналитики;</li>
49
<li>"офисные" программы;</li>
49
<li>"офисные" программы;</li>
50
<li>разнообразные фичи;</li>
50
<li>разнообразные фичи;</li>
51
<li>математический контент;</li>
51
<li>математический контент;</li>
52
<li>универсальные приложения, расширяющие возможности системы;</li>
52
<li>универсальные приложения, расширяющие возможности системы;</li>
53
<li>ПО для системного администрирования и служб ОС.</li>
53
<li>ПО для системного администрирования и служб ОС.</li>
54
</ul><p>В случае с играми предстоит подучить другие языки. Примеры - C++, C, Java. У создаваемой игрушки "только на Питоне" будут ограничены возможности. Связано это с тем, что он (programming language) имеет не все функции и возможности для подобных утилит. Зато оный прекрасно интегрируется с перечисленными языками, давая больше перспектив разработке.</p>
54
</ul><p>В случае с играми предстоит подучить другие языки. Примеры - C++, C, Java. У создаваемой игрушки "только на Питоне" будут ограничены возможности. Связано это с тем, что он (programming language) имеет не все функции и возможности для подобных утилит. Зато оный прекрасно интегрируется с перечисленными языками, давая больше перспектив разработке.</p>
55
<h2>Ключевая терминология - что знать каждому</h2>
55
<h2>Ключевая терминология - что знать каждому</h2>
56
<p>Задумываясь над классами, а также иными элементами программного кода Питона, каждый разработчик должен разобраться с ключевой терминологией. Она универсальна и подойдет для любого ЯП с поддержкой ООП.</p>
56
<p>Задумываясь над классами, а также иными элементами программного кода Питона, каждый разработчик должен разобраться с ключевой терминологией. Она универсальна и подойдет для любого ЯП с поддержкой ООП.</p>
57
<p>Имеет смысл запомнить следующие данные и определения:</p>
57
<p>Имеет смысл запомнить следующие данные и определения:</p>
58
<ol><li>Алгоритмы - инструкции и правила, необходимые для решения поставленной задачи.</li>
58
<ol><li>Алгоритмы - инструкции и правила, необходимые для решения поставленной задачи.</li>
59
<li>API - интерфейс прикладного программирования. Представлен правилами и процедурами, которые помогают создавать программы. Поддерживают обращение со сторонними службами системы.</li>
59
<li>API - интерфейс прикладного программирования. Представлен правилами и процедурами, которые помогают создавать программы. Поддерживают обращение со сторонними службами системы.</li>
60
<li>Аргументы - значения, передаваемые в функции или команды.</li>
60
<li>Аргументы - значения, передаваемые в функции или команды.</li>
61
<li>Символ - элементарная единица отображения информации. Равна одной символьной или буквенной записи.</li>
61
<li>Символ - элементарная единица отображения информации. Равна одной символьной или буквенной записи.</li>
62
<li>Объект - связанные переменные, константы, а также иные структурные данные. Они могут быть выбраны и обработаны совместно.</li>
62
<li>Объект - связанные переменные, константы, а также иные структурные данные. Они могут быть выбраны и обработаны совместно.</li>
63
<li>Класс - набор связанных объектов с одинаковыми (общими) свойствами.</li>
63
<li>Класс - набор связанных объектов с одинаковыми (общими) свойствами.</li>
64
<li>Константа - значение, которое в процессе выполнения приложения не подлежит изменениям. Остается неизменным на протяжении всего жизненного цикла ПО.</li>
64
<li>Константа - значение, которое в процессе выполнения приложения не подлежит изменениям. Остается неизменным на протяжении всего жизненного цикла ПО.</li>
65
<li>Тип данных - классификация информации того или иного вида.</li>
65
<li>Тип данных - классификация информации того или иного вида.</li>
66
<li>Массивы - списки, а также группы похожих типов значений электронных материалов. Они подлежат предварительной группировке. У всех значений в пределах массива один и тот же тип данных. Их отличие заключается в положении в пределах множества.</li>
66
<li>Массивы - списки, а также группы похожих типов значений электронных материалов. Они подлежат предварительной группировке. У всех значений в пределах массива один и тот же тип данных. Их отличие заключается в положении в пределах множества.</li>
67
<li>Фреймворк - готовые блоки кода, необходимые для облегчения разработки.</li>
67
<li>Фреймворк - готовые блоки кода, необходимые для облегчения разработки.</li>
68
<li>Итерация - один проход через набор функций и операций, работающих с кодификацией.</li>
68
<li>Итерация - один проход через набор функций и операций, работающих с кодификацией.</li>
69
<li>Ключевое слово - зарезервированное слово программой или ЯП с особым значением. Необходимо для выполнения определенного спектра задач. Могут выражаться командами и параметрами. Зарезервированные слова нельзя использовать для имен переменных в приложении.</li>
69
<li>Ключевое слово - зарезервированное слово программой или ЯП с особым значением. Необходимо для выполнения определенного спектра задач. Могут выражаться командами и параметрами. Зарезервированные слова нельзя использовать для имен переменных в приложении.</li>
70
<li>Оператор - объект, который умеет управлять разного рода операндами.</li>
70
<li>Оператор - объект, который умеет управлять разного рода операндами.</li>
71
<li>Операнд - элемент, которым можно управлять при помощи имеющихся операторов.</li>
71
<li>Операнд - элемент, которым можно управлять при помощи имеющихся операторов.</li>
72
<li>Переменные - элементарные единицы хранения памяти. Они могут быть отображены, сохранены или скорректированы при необходимости.</li>
72
<li>Переменные - элементарные единицы хранения памяти. Они могут быть отображены, сохранены или скорректированы при необходимости.</li>
73
<li>ЯП высокого уровня - позволяет вести разработку, независимо от ОС. Для понимания полученной кодификации ее предварительно необходимо перевести в машинное "исполнение".</li>
73
<li>ЯП высокого уровня - позволяет вести разработку, независимо от ОС. Для понимания полученной кодификации ее предварительно необходимо перевести в машинное "исполнение".</li>
74
<li>ЯП низкого уровня - напоминает машинный. Отвечает за обеспечение некой абстракции концепций программирования. Менее понятен среднестатистическому юзеру.</li>
74
<li>ЯП низкого уровня - напоминает машинный. Отвечает за обеспечение некой абстракции концепций программирования. Менее понятен среднестатистическому юзеру.</li>
75
<li>Синтаксис - набор правил относительно вопроса передачи операторов.</li>
75
<li>Синтаксис - набор правил относительно вопроса передачи операторов.</li>
76
</ol><p>Все это - база, без которой использовать классы, наследование, а также массивы и иные компоненты Питона будет весьма проблематично.</p>
76
</ol><p>Все это - база, без которой использовать классы, наследование, а также массивы и иные компоненты Питона будет весьма проблематично.</p>
77
<h2>Объектно-ориентированное программирование</h2>
77
<h2>Объектно-ориентированное программирование</h2>
78
<p>Python - не только высокоуровневый язык. Он имеет поддержку нескольких парадигм программирования, включая ООП.</p>
78
<p>Python - не только высокоуровневый язык. Он имеет поддержку нескольких парадигм программирования, включая ООП.</p>
79
<p>Это - методология коддинга. В ее основе заложено представление программы через совокупность объектов, каждый из которых выступает экземпляром определенного класса. Классы будут образовывать иерархию наследования. Здесь создание ПО основывается на связи объектов, а не на "чистой" логике и математике.</p>
79
<p>Это - методология коддинга. В ее основе заложено представление программы через совокупность объектов, каждый из которых выступает экземпляром определенного класса. Классы будут образовывать иерархию наследования. Здесь создание ПО основывается на связи объектов, а не на "чистой" логике и математике.</p>
80
<h3>Принципы ООП</h3>
80
<h3>Принципы ООП</h3>
81
<p>Изучая наследование в Python и иные особенности ООП, нужно понимать принципы соответствующей методологии. Всего их 4. Каждый обладает ключевыми особенностями.</p>
81
<p>Изучая наследование в Python и иные особенности ООП, нужно понимать принципы соответствующей методологии. Всего их 4. Каждый обладает ключевыми особенностями.</p>
82
<h4>Абстракция</h4>
82
<h4>Абстракция</h4>
83
<p>Так называют выделение основных, наиболее значимых характеристик объекта с последующим игнорированием второстепенных.</p>
83
<p>Так называют выделение основных, наиболее значимых характеристик объекта с последующим игнорированием второстепенных.</p>
84
<p>Любой объект в мире составного характера - абстракция. Примеры - ноутбук и его применение. Всем понятно, что это и для чего применяется. А вот непосредственный его состав вроде плат и микросхем не так волнуют пользователей.</p>
84
<p>Любой объект в мире составного характера - абстракция. Примеры - ноутбук и его применение. Всем понятно, что это и для чего применяется. А вот непосредственный его состав вроде плат и микросхем не так волнуют пользователей.</p>
85
<h4>Полиморфизм</h4>
85
<h4>Полиморфизм</h4>
86
<p>Полиморфизм - это возможность нескольких реализаций в пределах одной и той же идеи. Пример - есть класс "Персонаж". У него - метод под названием "Атака". Тогда:</p>
86
<p>Полиморфизм - это возможность нескольких реализаций в пределах одной и той же идеи. Пример - есть класс "Персонаж". У него - метод под названием "Атака". Тогда:</p>
87
<ul><li>воин будет выполнять манипуляцию мечом или булавой;</li>
87
<ul><li>воин будет выполнять манипуляцию мечом или булавой;</li>
88
<li>лучник - луком/арбалетом;</li>
88
<li>лучник - луком/арбалетом;</li>
89
<li>маг - посохом.</li>
89
<li>маг - посохом.</li>
90
</ul><p>Все это - методы атаки, но в программном коде операции реализовываются разными способами.</p>
90
</ul><p>Все это - методы атаки, но в программном коде операции реализовываются разными способами.</p>
91
<h4>Немного о наследовании</h4>
91
<h4>Немного о наследовании</h4>
92
<p>Наследование - способность класса расширять понятие другого класса. Главный механизм повторного использования кода в объектно-ориентированном программировании.</p>
92
<p>Наследование - способность класса расширять понятие другого класса. Главный механизм повторного использования кода в объектно-ориентированном программировании.</p>
93
<p>При наследовании появляется "родитель" - класс, от которого перенимаются свойства, а также "дочерний класс" или "наследник" - то, чему присваиваются соответствующие "параметры".</p>
93
<p>При наследовании появляется "родитель" - класс, от которого перенимаются свойства, а также "дочерний класс" или "наследник" - то, чему присваиваются соответствующие "параметры".</p>
94
<h4>Инкапсуляция</h4>
94
<h4>Инкапсуляция</h4>
95
<p>Принцип, позволяющий обеспечивать безопасность и управление сложностью кодификации. Она будет блокировать доступ к деталям сложных концепций. Абстракция позволяет рассматривать элементы с общего "ракурса", а инкапсуляция - с любого другого.</p>
95
<p>Принцип, позволяющий обеспечивать безопасность и управление сложностью кодификации. Она будет блокировать доступ к деталям сложных концепций. Абстракция позволяет рассматривать элементы с общего "ракурса", а инкапсуляция - с любого другого.</p>
96
<h2>Работа с классами</h2>
96
<h2>Работа с классами</h2>
97
<p>Чтобы должным образом изучить наследование в Python, а также иные важные аспекты разработки, стоит начать с рассмотрения классов. Это - своеобразная сущность. Ее конкретным воплощением выступает объект.</p>
97
<p>Чтобы должным образом изучить наследование в Python, а также иные важные аспекты разработки, стоит начать с рассмотрения классов. Это - своеобразная сущность. Ее конкретным воплощением выступает объект.</p>
98
<p>Если провести аналогию, можно рассмотреть пример: все знают факторы, которые являются принадлежащими человеку. Сюда относят:</p>
98
<p>Если провести аналогию, можно рассмотреть пример: все знают факторы, которые являются принадлежащими человеку. Сюда относят:</p>
99
<ul><li>имя;</li>
99
<ul><li>имя;</li>
100
<li>возраст;</li>
100
<li>возраст;</li>
101
<li>фамилию;</li>
101
<li>фамилию;</li>
102
<li>отчество;</li>
102
<li>отчество;</li>
103
<li>цвет глаз;</li>
103
<li>цвет глаз;</li>
104
<li>длину волос и так далее.</li>
104
<li>длину волос и так далее.</li>
105
</ul><p>Люди умеют выполнять разнообразные действия: бегать, прыгать, плавать, думать и не только. Все это - представление, которое подразумевают некий набор действий и характеристик. Они и носят название классов.</p>
105
</ul><p>Люди умеют выполнять разнообразные действия: бегать, прыгать, плавать, думать и не только. Все это - представление, которое подразумевают некий набор действий и характеристик. Они и носят название классов.</p>
106
<p>Конкретизация воплощения соответствующего шаблона может отличаться. Пример - у каждого человека есть собственное имя. Реально существующая личность - это и есть объект класса "Люди".</p>
106
<p>Конкретизация воплощения соответствующего шаблона может отличаться. Пример - у каждого человека есть собственное имя. Реально существующая личность - это и есть объект класса "Люди".</p>
107
<h3>Создание</h3>
107
<h3>Создание</h3>
108
<p>Создание базового класса - простая операция в Питоне. Для этого нужно использовать ключевое слово class. Форма представления окажется такой:</p>
108
<p>Создание базового класса - простая операция в Питоне. Для этого нужно использовать ключевое слово class. Форма представления окажется такой:</p>
109
<p>class имя класса;</p>
109
<p>class имя класса;</p>
110
<p> атрибуты класса</p>
110
<p> атрибуты класса</p>
111
<p> методы класса</p>
111
<p> методы класса</p>
112
<p>Внутри класса будут определяться атрибуты, которые отвечают за хранение характеристики оного, а также методы. Это - функции класса.</p>
112
<p>Внутри класса будут определяться атрибуты, которые отвечают за хранение характеристики оного, а также методы. Это - функции класса.</p>
113
<p>Пример:</p>
113
<p>Пример:</p>
114
<p>Здесь происходит следующее:</p>
114
<p>Здесь происходит следующее:</p>
115
<ol><li>Определен класс Person. Это - условное представление человека.</li>
115
<ol><li>Определен класс Person. Это - условное представление человека.</li>
116
<li>Атрибуты и методы отсутствуют.</li>
116
<li>Атрибуты и методы отсутствуют.</li>
117
<li>PASS - это ключевое слово, которое заменяет функционал. Оператор, который нужен для создания кода, но использовать его нет необходимости.</li>
117
<li>PASS - это ключевое слово, которое заменяет функционал. Оператор, который нужен для создания кода, но использовать его нет необходимости.</li>
118
</ol><p>Это поможет при изучении объектов в Python. Работа с classes - база, без которой дальнейшая разработка невозможна.</p>
118
</ol><p>Это поможет при изучении объектов в Python. Работа с classes - база, без которой дальнейшая разработка невозможна.</p>
119
<h3>Конструктор</h3>
119
<h3>Конструктор</h3>
120
<p>Конструктор - это метод, который будет вызван при создании объектов. Он необходим для элементов, которые изначально должны иметь те или иные значения. Пример - пустые экземпляры класса "Студент" бессмысленны. Требуется иметь минимальный набор данных: фамилии или группы.</p>
120
<p>Конструктор - это метод, который будет вызван при создании объектов. Он необходим для элементов, которые изначально должны иметь те или иные значения. Пример - пустые экземпляры класса "Студент" бессмысленны. Требуется иметь минимальный набор данных: фамилии или группы.</p>
121
<p>У Питона конструктор - это метод init. Он выглядит так:</p>
121
<p>У Питона конструктор - это метод init. Он выглядит так:</p>
122
<h3>Об атрибутах</h3>
122
<h3>Об атрибутах</h3>
123
<p>Каждый класс имеет собственный набор характеристик, который отвечает за описание сущности. Эти параметры носят название полей или атрибутов.</p>
123
<p>Каждый класс имеет собственный набор характеристик, который отвечает за описание сущности. Эти параметры носят название полей или атрибутов.</p>
124
<p>Могут быть:</p>
124
<p>Могут быть:</p>
125
<ol><li>Статическими. Это - поля класса. Используются без пользования новым объектом. Конструктор здесь не пригодится.</li>
125
<ol><li>Статическими. Это - поля класса. Используются без пользования новым объектом. Конструктор здесь не пригодится.</li>
126
<li>Динамическими. Представлены полями объекта. Будут заданы через конструктор. Нужно каждый раз создавать экземпляр, а полям - присваивать значения.</li>
126
<li>Динамическими. Представлены полями объекта. Будут заданы через конструктор. Нужно каждый раз создавать экземпляр, а полям - присваивать значения.</li>
127
</ol><p>Вот пример работы с атрибутами:</p>
127
</ol><p>Вот пример работы с атрибутами:</p>
128
<p>Если в кодификации задействованы атрибуты двух типов, они могут иметь одни и те же имена.</p>
128
<p>Если в кодификации задействованы атрибуты двух типов, они могут иметь одни и те же имена.</p>
129
<h2>Методы</h2>
129
<h2>Методы</h2>
130
<p>Метод - это функция заданного класса. Они будут определены в пределах class. Отвечают за поведение оного.</p>
130
<p>Метод - это функция заданного класса. Они будут определены в пределах class. Отвечают за поведение оного.</p>
131
<p>Вот наглядный пример:</p>
131
<p>Вот наглядный пример:</p>
132
class Person: # определение класса Person def say_hello(self): print("Hello") tom = Person() tom.say_hello() # Hello<p>Здесь:</p>
132
class Person: # определение класса Person def say_hello(self): print("Hello") tom = Person() tom.say_hello() # Hello<p>Здесь:</p>
133
<ol><li>Определен метод say_hello. Он отвечает за приветствие.</li>
133
<ol><li>Определен метод say_hello. Он отвечает за приветствие.</li>
134
<li>При обработки оного осуществляется вывод строчки на консоли.</li>
134
<li>При обработки оного осуществляется вывод строчки на консоли.</li>
135
<li>Во время определения метода требуется учесть, что все они должны принимать в качестве первого параметра ссылку на текущий объект. Установленные правила гласят, что такой элемент имеет обозначение self.</li>
135
<li>Во время определения метода требуется учесть, что все они должны принимать в качестве первого параметра ссылку на текущий объект. Установленные правила гласят, что такой элемент имеет обозначение self.</li>
136
</ol><p>Обращение к методам осуществляется через имя объекта по форме: объект.метод ([параметры метода]).</p>
136
</ol><p>Обращение к методам осуществляется через имя объекта по форме: объект.метод ([параметры метода]).</p>
137
<h3>Self - что это</h3>
137
<h3>Self - что это</h3>
138
<p>Self - зарезервированное слово в Python. Это - ссылка на текущий экземпляр класса. Имеет аналог в других ЯП в качестве this.</p>
138
<p>Self - зарезервированное слово в Python. Это - ссылка на текущий экземпляр класса. Имеет аналог в других ЯП в качестве this.</p>
139
<p>Принцип работы self можно проверить на примере с котами:</p>
139
<p>Принцип работы self можно проверить на примере с котами:</p>
140
<ol><li>Все кошачьи мурлыкают. Это прав утверждение.</li>
140
<ol><li>Все кошачьи мурлыкают. Это прав утверждение.</li>
141
<li>Соответствующая способность реализована в классе "Кот" в качестве метода "Мурчать".</li>
141
<li>Соответствующая способность реализована в классе "Кот" в качестве метода "Мурчать".</li>
142
<li>Человек хочет, чтобы кот Пушок помурчал.</li>
142
<li>Человек хочет, чтобы кот Пушок помурчал.</li>
143
<li>Если задать команду "Кот.Мурчать", звуки подадут все животные этого типа. Здесь на помощь придет self.</li>
143
<li>Если задать команду "Кот.Мурчать", звуки подадут все животные этого типа. Здесь на помощь придет self.</li>
144
<li>Метод будет вызван запросом self.Мурчать.</li>
144
<li>Метод будет вызван запросом self.Мурчать.</li>
145
</ol><p>Это - элементарный алгоритм, который поможет понять принцип работы self. Это - основной элемент, с которым предстоит сталкиваться разработчику.</p>
145
</ol><p>Это - элементарный алгоритм, который поможет понять принцип работы self. Это - основной элемент, с которым предстоит сталкиваться разработчику.</p>
146
<p>А вот пример получения доступа через self:</p>
146
<p>А вот пример получения доступа через self:</p>
147
class Rectangle: def __init__(self, width, height): self.width = width self.height = height def area(self): return self.width * self.height<h3>Доступ и декораторы</h3>
147
class Rectangle: def __init__(self, width, height): self.width = width self.height = height def area(self): return self.width * self.height<h3>Доступ и декораторы</h3>
148
<p>Классификаторов доступа к полям класса нет. Это - одно из упущений инкапсуляции.</p>
148
<p>Классификаторов доступа к полям класса нет. Это - одно из упущений инкапсуляции.</p>
149
<p>Декоратор - функция, которая представляет собой "обертку". В нее можно "завернуть" другой метод. Это поможет скорректировать функциональность кодификации без непосредственной замены кода.</p>
149
<p>Декоратор - функция, которая представляет собой "обертку". В нее можно "завернуть" другой метод. Это поможет скорректировать функциональность кодификации без непосредственной замены кода.</p>
150
<h2>Объекты и экземпляры</h2>
150
<h2>Объекты и экземпляры</h2>
151
<p>Изучая наследование классов в Python, важно разобраться с objects. Они не менее важны, чем понятие self и иные ключевики. Представлены конкретным экземпляром класса.</p>
151
<p>Изучая наследование классов в Python, важно разобраться с objects. Они не менее важны, чем понятие self и иные ключевики. Представлены конкретным экземпляром класса.</p>
152
<p>Создать объект легко. Вот пример:</p>
152
<p>Создать объект легко. Вот пример:</p>
153
class AirConditioner: def __init__(self, model, capacity): self.model = model self.capacity = capacity def turn_on(self): print('Now in the room will be cool') # создадим объект класса Кондиционер ballu = AirConditioner('BPAC-07', 785) ballu.turn_on() > Now in the room will be cool<h3>Что там с атрибутами</h3>
153
class AirConditioner: def __init__(self, model, capacity): self.model = model self.capacity = capacity def turn_on(self): print('Now in the room will be cool') # создадим объект класса Кондиционер ballu = AirConditioner('BPAC-07', 785) ballu.turn_on() > Now in the room will be cool<h3>Что там с атрибутами</h3>
154
<p>У class атрибуты бывают динамическими и статическими. В случае с object инициализация производится так:</p>
154
<p>У class атрибуты бывают динамическими и статическими. В случае с object инициализация производится так:</p>
155
class MightiestWeapon: name = "Default name" def __init__(self, weapon_type): self.weapon_type = weapon_type<h3>Наследование</h3>
155
class MightiestWeapon: name = "Default name" def __init__(self, weapon_type): self.weapon_type = weapon_type<h3>Наследование</h3>
156
<p>Некоторые элементы кода аналогичны друг другу за исключением нескольких моментов. Наследование - это определение сход и различий между подобными objects. Вот пример:</p>
156
<p>Некоторые элементы кода аналогичны друг другу за исключением нескольких моментов. Наследование - это определение сход и различий между подобными objects. Вот пример:</p>
157
class Animal: def make_a_sound(self): print("Издаёт животный звук")<p>Известно, что коты - все роняют, а собаки - любят рыть землю. Тогда из родительского класса Animal можно создать два наследника:</p>
157
class Animal: def make_a_sound(self): print("Издаёт животный звук")<p>Известно, что коты - все роняют, а собаки - любят рыть землю. Тогда из родительского класса Animal можно создать два наследника:</p>
158
class Cat(Animal): def drop_everything(self): print('Подъем, я все поронял!')<p>и:</p>
158
class Cat(Animal): def drop_everything(self): print('Подъем, я все поронял!')<p>и:</p>
159
class Dog(Animal): def dig_the_ground(self): print(‘Обожаю копать и рыть!')<p>Стоит обратить внимание на то, что в программировании есть предопределение. Для него у наследника требуется объявить метод с тем же названием, что и у базового класса.</p>
159
class Dog(Animal): def dig_the_ground(self): print(‘Обожаю копать и рыть!')<p>Стоит обратить внимание на то, что в программировании есть предопределение. Для него у наследника требуется объявить метод с тем же названием, что и у базового класса.</p>
160
<p>Эти принципы наследования Python должен знать каждый.</p>
160
<p>Эти принципы наследования Python должен знать каждый.</p>
161
<a></a>
161
<a></a>