Python / Grade 1 / ООП

Основы

links:
https://www.geeksforgeeks.org/python-oops-concepts/




theme:

Концепции ООП в Python

Класс Python

Класс — это совокупность объектов. Класс содержит чертежи или прототип, на основе которых создаются объекты. Это логическая сущность, содержащая некоторые атрибуты и методы.

Объекты Python

Объект — это сущность, с которой связано состояние и поведение.

Объект состоит из:

Наследование Python

Наследование — это способность одного класса получать или наследовать свойства другого класса.

class Person(object):

# __init__ is known as the constructor
def __init__(self, name, idnumber):
self.name = name
self.idnumber = idnumber

def display(self):
print(self.name)
print(self.idnumber)

def details(self):
print("My name is {}".format(self.name))
print("IdNumber: {}".format(self.idnumber))


# child class
class Employee(Person):
def __init__(self, name, idnumber, salary, post):
self.salary = salary
self.post = post

# invoking the __init__ of the parent class
Person.__init__(self, name, idnumber)

def details(self):
print("My name is {}".format(self.name))
print("IdNumber: {}".format(self.idnumber))
print("Post: {}".format(self.post))


# creation of an object variable or an instance
a = Employee('Rahul', 886012, 200000, "Intern")

# calling a function of the class Person using
# its instance
a.display()
a.details()


Полиморфизм Python

Подклассы могут переопределять методы, определенные в их родительском классе, чтобы обеспечить определенное поведение, при этом наследуя другие методы из родительского класса
(в примере выше метод details класса Employe переопределяет метод details в родительском классе Person)


Инкапсуляция Python

Инкапсуляция — одна из фундаментальных концепций объектно-ориентированного программирования (ООП). В нем описывается идея упаковки данных и методы работы с данными в одном модуле. Это накладывает ограничения на прямой доступ к переменным и методам и может предотвратить случайное изменение данных. Чтобы предотвратить случайное изменение, переменную объекта можно изменить только с помощью метода объекта. Эти типы переменных известны как частные переменные.

Класс является примером инкапсуляции, поскольку он инкапсулирует все данные, которые являются функциями-членами, переменными и т. д.

class Base:
def __init__(self):
self.a = "GeeksforGeeks"
self.__c = "GeeksforGeeks"


obj1 = Base()
print(obj1.a)
print(obj1.__c)

Доступ к переменной self.__c вызовет ошибку. Так как с помощью __ мы делаем атрибут приватным.

Абстракция данных

скрывает от пользователя ненужные детали кода.