В этой статье мы с вами разберем фундаментальную концепцию объектно-ориентированного программирования в Python на примерах. Python в своем арсенале имеет множество подходов к реализации задач, самым популярным решением является ООП.
Определение класса
Для определение класса, в python используется оператор class. Классы — это схема объектов. В классах содержится описание объектов. Рассмотрим пример создание пустого класса.
class Students:
pass
Пример создания класса на Python
class Students:
count = 0
def __init__(self,name,mark):
self.name = name
self.mark = mark
Students.count += 1
def counter(self):
print('Всего студентов {}'.format(Students.count) )
def students_cl(self):
print('Имя:{}, Отметка: {}'.format(self.name,self.mark))
- Переменная count — находится внутри нашего класса, получить доступ к этой переменной можно Students.count
- Метод __init__ это конструктор нашего класса, или как принято называть метод инициализации
- Остальные методы, это обычные функции, отличительной чертой которых является то, что первым аргументом для них будет является аргумент self
Создание экземпляров класса
Логика создания экземпляра класса, реализована следующим образом. Вызываем нужный класс по его имени, затем передаем ему аргументы, которые принимает конструктор __init__.
st1 = Students("Тимур", 5)
st2 = Students("Антон", 3)
Доступ к атрибутам класса
Получение доступа к атрибутам класса, осуществляется с помощью оператора .
st1.students_cl()
st2.students_cl()
print("Все студентов: {}".format(Students.count))
class Students:
count = 0
def __init__(self,name,mark):
self.name = name
self.mark = mark
Students.count += 1
def counter(self):
print('Всего студентов {}'.format(Students.count) )
def students_cl(self):
print('Имя:{}, Отметка: {}'.format(self.name,self.mark))
st1 = Students("Тимур", 5)
st2 = Students("Антон", 3)
st1.students_cl()
st2.students_cl()
print("Все студентов: {}".format.Students.count)
Результат:
Имя:Тимур, Отметка: 5
Имя:Антон, Отметка: 3
Всего студентов: 2
Добавление, удаление и изменение атрибутов класса
st1.course = 2 # Добавление атрибута 'course'
st1.course = 3 # Изменение атрибута
del st1.course # Удаление атрибута
Для доступа к атрибутам мы можем использовать следующие функции:
- getattr(obj, name [, default]) - Доступ к атрибуту объекта
- hasattr(obj, age) - проверка на наличие атрибута age
- setattr(obj, age, value) - задать атрибут, в случае его отсутствия он будет создан
- delattr(obj, name) - удаление атрибута