HTML Diff
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() &gt; 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() &gt; 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>