Skip to content
This repository was archived by the owner on Jan 11, 2025. It is now read-only.

Серия задач для базового понимания объектно-ориентированного программирования

Notifications You must be signed in to change notification settings

PyBackDev/Object_Oriented_Programming

Repository files navigation

Объектно-ориентированное программирование

В целях изучения объктно-ориентированного программирования (ООП) представлена серия задач. Все задачи разделены на блоки, которые составлены от простого к сложному.


Что такое ООП?

ООП - парадигма, в которой программа состоит из взаимодействующих между собой объектов. Объекты имеют свойства и поведение. Обычно объекты - это экземпляры класса. Класс - это шаблон, в котором описаны все свойства будущего объекта и его методы.

ООП имеет 4 основных принципа:

  1. Инкапсуляция - сокрытие поведения объекта внутри него.
  2. Абстракция - объект имеет «интерфейс». У объекта есть методы и свойства, к которым мы можем обратиться извне этого объекта.
  3. Наследование - один класс наследует свойства и поведение другого класса (родитель, потомок).
  4. Полиморфизм - переопределение поведения.

Блоки задач для изучения ООП

1. Introduction

В папке 'Introduction' приведена задача для понимания класса, экземпляра класса, атрибутов класса и экземпляра.

2. Methods and properties

2.1. В папке 'self' приведена задача для понимания аргумента self. self — это стандартное имя первого аргумента для методов объекта.

2.2. В папке 'init' приведены задачи для понимания инициализации объекта с помощью метода init.

2.3.В папке 'mono-state' приведена задача для понимания паттерна моносостояния экземпляров класса.

2.4. В папке 'public,protected,private' приведены задачи для понимания публичных, приватных, защищенных атрибутов и методов.

2.5. В папке 'get,set,property' приведены задачи для понимания getter, setter и property атрибутов.

2.6. В папке 'decorator' приведены задачи для понимания декоратора property.

2.7. В папке 'calculated properties' приведены задачи для понимания вычисляемых свойств.

2.8. В папке 'classmethod,staticmethod' приведены задачи для понимания classmethod и staticmethod.

2.9. В папке 'class namespace' приведены задачи для понимания пространства имен класса.

3. Double underscore methods

3.1. В папке 'str, repr' приведены задачи для понимания магических методов __str__ и __repr__.

3.2. В папке 'len, abs' приведены задачи для понимания магических методов __len__ и __abs__.

3.3. В папке 'add, mul, mub, truediv' приведены задачи для понимания магических методов _add__, __mul__, __sub__ и __truediv__.

3.4. В папке 'comparison methods' приведены задачи для понимания cпециальных методов сравнения объектов классов.

3.5. В папке 'eq, hash' приведены задачи для понимания магических методов __eq__ и __hash__.

3.6. В папке 'bool' приведены задачи для понимания магического метода __bool__.

3.7. В папке 'call' приведены задачи для понимания магического метода __call__.

3.8. В папке 'polymorphism' приведены задачи для понимания полиморфизмп в Python.

3.9. В папке 'getitem, setitem, delitem' приведены задачи для понимания методов __getitem__ , __setitem__ и __delitem__.

3.10. В папке 'iter, next' приведены задачи для понимания магических методов __iter__ и __next__.

4. Inheritance

4.1. В папке 'principle' приведены задачи для понимания принципов наследования в ООП.

4.2. В папке 'built-in types' приведены задачи для понимания наследования от object и от других встроенных типов.

4.3. В папке 'redefinition' приведены задачи для понимания переопределения методов в Python.

4.4. В папке 'extending' приведены задачи для понимания расширения класса в Python.

4.5. В папке 'delegation' приведены задачи для понимания делегирования в Python.

4.6. В папке 'extending' приведены задачи для понимания множественного наследования.

4.7. В папке 'slots' приведены задачи для понимания Slots.

4.8. В папке 'slots (property)' приведены задачи для понимания Slots: свойства(property) и наследования.

5. Exceptions

В папке 'Python exceptions' приведены задача для понимания обработки исключений через try, except, else, finally, raise.

About

Серия задач для базового понимания объектно-ориентированного программирования

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages