🐍

Лекция по Python: Определение классов и объектов, работа с атрибутами

Jul 11, 2024

Лекция по Python: Определение классов и объектов, работа с атрибутами

Введение

  • Лектор: Сергей Балакирев
  • Тема: Определение классов, создание объектов, добавление и удаление атрибутов в Python.

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

  • Синтаксис: class ClassName: # содержимое класса
  • Соответствие стандарту PEP 8:
    • Имя класса принято начинать с заглавной буквы.

Пример класса Point

  • Определение пустого класса: class Point: pass
  • Дополнение атрибутами color и circle: class Point: color = 'red' circle = 2
  • Атрибуты класса: color и circle.
  • Атрибуты класса можно называть также свойствами.

Работа с классами в Python-консоли

  • Создание экземпляра класса: a = Point() b = Point()
  • Проверка атрибутов класса: Point.color # 'red' Point.circle # 2
  • Изменение атрибута класса: Point.color = 'black' # изменили красный на черный
  • Проверка всех атрибутов класса: Point.__dict__

Создание экземпляров класса

  • Создание экземпляра a и b: a = Point() b = Point()
  • Проверка типов: type(a) == Point # True
  • Функция isinstance: isinstance(a, Point) # True

Пространство имен объектов класса

  • Свойства color и circle доступны через объекты классов: a.color # 'black' b.circle # 2
  • Добавление новых атрибутов объекту: a.color = 'green' # теперь у a свой атрибут color со значением 'green' b.circle # 2 (не изменилось)
  • Проверка атрибутов экземпляра a.__dict__ # {'color': 'green'}

Динамическое добавление атрибутов

  • Добавление нового атрибута классу с помощью функции setattr: setattr(Point, 'type_pt', 'disc')
  • Проверка нового атрибута: Point.__dict__

Чтение атрибутов

  • Чтение атрибута с помощью getattr: getattr(Point, 'color') getattr(Point, 'nonexistent_attr', False) # возврат False если атрибут не найден

Удаление атрибутов

  • Удаление атрибута с помощью del: del Point.type_pt
  • Удаление через delattr: delattr(Point, 'type_pt')
  • Проверка существования атрибутов с помощью hasattr: hasattr(Point, 'color') # True
  • Атрибуты объекта и класса:
    • Удаление атрибута из объекта: del a.color a.color # берется из класса Point

Индивидуальные атрибуты объектов

  • Добавление индивидуальных атрибутов (координаты точки): a.x = 1 a.y = 2 b.x = 10 b.y = 20

Документация класса

  • Добавление описания к классу: class Point: """Класс для представления точек на плоскости""" ...
  • Проверка документации класса: Point.__doc__

Итоги

  • Понимание создания и работы с классами, экземплярами, атрибутами и их управлением в Python.