Документация по Python. Теоретические материалы, и практические задачи

ООП Python

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

Определение класса

Для определение класса, в python используется оператор class. Классы — это схема объектов. В классах содержится описание объектов. Рассмотрим пример создание пустого класса.

Пустой класс создан, давайте теперь создадим класс, в котором будут отображаться студенты, и их успеваемость.

Пример создания класса на 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)
То есть, в методе __init__ мы указали два аргумента, это имя, и отметка по успеваемости, соответственно, мы передаем два этих аргумента.

Доступ к атрибутам класса

Получение доступа к атрибутам класса, осуществляется с помощью оператора .

                    
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 # Удаление атрибута

Для доступа к атрибутам мы можем использовать следующие функции:

  1. getattr(obj, name [, default]) - Доступ к атрибуту объекта
  2. hasattr(obj, age) - проверка на наличие атрибута age
  3. setattr(obj, age, value) - задать атрибут, в случае его отсутствия он будет создан
  4. delattr(obj, name) - удаление атрибута

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *