original
Свежие вакансии по Python:
ООП расшифровывается как объектно-ориентированное программирование. Эта концепция представляет собой стиль решения задач программирования, когда свойства и поведение реального объекта упакованы в код как единое целое.
Этот стиль программирования обеспечивает модульность и масштабирование при наименьшем количестве проблем.
Недавно мы рассмотрели 30 вопросов с собеседований по теме ООП, а сегодня попробуем разобраться с этим немного глубже.
Python — это динамически типизированный интерпретируемый язык программирования высокого уровня. Python поддерживает несколько понятий ООП, включая следующие:
Класс — это план реальной сущности. В Python он создается с использованием ключевого слова class, как показано в следующем фрагменте кода.
class Person:
def __init__(self, name, age):
self.name = name
self.age = age В приведенном выше примере:
Как только класс Person определен, вы можете использовать его для создания экземпляра, передавая значения, как показано ниже.
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
if __name__ == "__main__":
p = Person("Инокент", 23)
print(p.name) В приведенном выше примере:
Как следует из названия, это концепция о наследовании свойств от существующего объекта. Наследование увеличивает возможность повторного использования кода. Одиночное, множественное и многоуровневое наследование — это лишь немногие из большого числа типов, поддерживаемых Python.
В следующем примере показано, как использовать наследование в Python:
class Person:
def __init__(self):
pass
# Одноуровневое наследование
class Employee(Person):
def __init__(self):
pass
# Многоуровневое наследование
class Manager(Employee):
def __init__(self):
pass
# Множественное наследование
class Enterprenaur(Person, Employee):
def __init__(self):
pass При множественном наследовании классы наследуются слева направо в круглых скобках, в зависимости от алгоритма Method Resolution Order (MRO).
Это концепция упаковки данных так, что внешний мир имеет доступ только к открытым свойствам. Некоторые свойства могут быть скрыты, чтобы уменьшить уязвимость. Это так называемая реализация сокрытия данных. Например, вы хотите купить брюки с интернет-сайта. Данные, которые вам нужны, это их стоимость и доступность. Количество предметов и их расположение — это информация, которая вас не беспокоит. Следовательно, эта информация скрыта.
В Python это реализуется путем создания private, protected и public переменных и методов экземпляра.
Private свойства имеют двойное подчеркивание (__) в начале, в то время как protected имеют одиночное подчеркивание (_). По умолчанию, все остальные переменные и методы являются public.
Private атрибуты доступны только внутри класса и недоступны для дочернего класса (если он унаследован). Protected доступны внутри класса, но доступны и дочернему классу. Все эти ограничения сняты для public атрибутов.
Следующие фрагменты кода являются примером этой концепции:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def _protected_method(self):
print("protected method")
def __private_method(self):
print("privated method")
if __name__ == "__main__":
p = Person("mohan", 23)
p._protected_method() # покажет предупреждение
p.__private_method() # вбросит Attribute error указав, что этот метод не существует Это концепция, при которой функция может принимать несколько форм в зависимости от количества аргументов или типа аргументов, переданных функции.
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def show_salary(self):
print("Зарплата неизвестна")
class Employee(Person):
def __init__(self, name, age, salary):
super().__init__(name, age)
self.salary = salary
def show_salary(self):
print("Зарплата составляет ", self.salary)
if __name__ == "__main__":
p = Person("y", 23)
x = Employee("x", 20, 100000)
p.show_salary() # Зарплата неизвестна
x.show_salary() # Зарплата составляет 100000 В приведенном выше примере ключевое слово super используется для вызова метода родительского класса. Оба класса имеют метод show_salary. В зависимости от типа объекта, который выполняет вызов этой функции, выходные данные различаются.
Python также имеет встроенные функции, работающие с полиморфизмом. Одним из самых простых примеров является функция print в Python.
print("Привет!", end=" ")
print("Я Инокент")
print(len([1, 2, 3, 4, 5])) Вывод будет таким:
Привет! Я Инокент
5 В приведенном выше фрагменте кода:
Если вы ищете работу на Python, на Talanto.work сейчас есть варианты для junior, middle, senior…
Рынок Python-вакансий большой, но удобным его назвать сложно. Формально вакансий много, однако в реальном поиске…
Срезы в Python — это больше, чем a[2:7]. В статье — быстрый разбор полезных приёмов:…
В этой статье мы рассмотрим возведение в степень в Python с помощью различных методов, от…
Дубликаты в списке Python — частая проблема. В статье показано, как быстро убрать повторы, в…
Услуга виртуального хостинга на SpaceWeb позволяет арендовать часть сервера (shared-сервера) и разместить на нём свой…