Skip to content

Class object - Объект класса

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

Синтаксис определения класса в Python следующий:

python
class ИмяКласса:
    # тело класса
    # атрибуты класса
    # методы класса

Требования к именованию классов:

  • Имена классов должны начинаться с заглавной буквы и следовать стилю CamelCase (например, Box, MyClass).
  • Имена классов не должны содержать пробелов и специальных символов, кроме подчеркивания (_).
  • Имена классов должны быть осмысленными и отражать назначение класса.

Рассмотрим пример коробки с тремя размерами и вычислением объема. Реализуем несколько подходов и сравним их удобство.

Решение с использованием переменных:

python
length_1 = 10
width_1 = 5
height_1 = 2
volume_1 = length_1 * width_1 * height_1
print(f"Коробка 1: {length_1}x{width_1}x{height_1}, объем: {volume_1}")

length2 = 7
width2 = 3
height2 = 4
volume2 = length2 * width2 * height2
print(f"Коробка 2: {length2}x{width2}x{height2}, объем: {volume2}")

Оценка: При увеличении числа коробок этот подход становится неудобным и громоздким. Управление большим количеством отдельных переменных сложно и приводит к запутанному коду.

Решение с использованием списков:

python
box_1 = [10, 5, 2]
volume_1 = box_1[0] * box_1[1] * box_1[2]
print(f"Коробка 1: {box_1[0]}x{box_1[1]}x{box_1[2]}, объем: {volume_1}")

box_2 = [7, 3, 4]
volume_2 = box_2[0] * box_2[1] * box_2[2]
print(f"Коробка 2: {box_2[0]}x{box_2[1]}x{box_2[2]}, объем: {volume_2}")

Оценка: Использование списка немного лучше, чем отдельных переменных. Мы группируем размеры одной коробки в один список. Однако, код все еще не очень читаемый, так как непонятно, что представляет собой каждый элемент списка (длина, ширина, высота).
При большом количестве коробок отслеживать индексы становится сложно.

Решение с использованием словарей:

python
box1 = {"length": 10, "width": 5, "height": 2}
volume1 = box1["length"] * box1["width"] * box1["height"]
print(f"Коробка 1: {box1['length']}x{box1['width']}x{box1['height']}, объем: {volume1}")

box2 = {"length": 7, "width": 3, "height": 4}
volume2 = box2["length"] * box2["width"] * box2["height"]
print(f"Коробка 2: {box2['length']}x{box2['width']}x{box2['height']}, объем: {volume2}")

Оценка: Словарь значительно улучшает читаемость кода.
Можем обращаться к размерам по ключам, что делает код более понятным.
Это решение лучше списка и отдельных переменных, особенно при увеличении числа объектов. Но есть вероятность опечатки при написании ключа, что может приводить к ошибкам.

Решение с использованием класса:

python
class Box:
    length = 10
    width = 5
    height = 2

box1 = Box
volume1 = box1.length * box1.width * box1.height
print(f"Коробка 1: {box1.length}x{box1.width}x{box1.height}, объем: {volume1}")

box2 = Box
box2.length = 7
box2.width = 3
box2.height = 1
volume2 = box2.length * box2.width * box2.height
print(f"Коробка 2: {box2.length}x{box2.width}x{box2.height}, объем: {volume2}")

Оценка: Класс — самый эффективный и организованный способ представления коробки. Этот подход обеспечивает лучшую структуру, читаемость и повторное использование кода, особенно при работе с большим количеством объектов (коробок). Классы позволяют создавать более сложную логику и управлять состоянием объектов через точку ..

Упражнения:

  1. Создайте оглавление книги. Для задания название первого пункта и страницы используйте переменные.
  2. Создайте оглавление книги. Для задания название второго пункта и страницы используйте кортеж.
  3. Создайте оглавление книги. Для задания название третьего пункта и страницы используйте словарь.
  4. Создайте оглавление книги. Для задания название четвертого пункта и страницы используйте класс.
  5. Используя библиотеку tkinter и Canvas. Нарисовать коробку на холсте с помощью задания координат и размеров через переменные.
  6. Используя библиотеку tkinter и Canvas. Нарисовать коробку на холсте с помощью задания координат и размеров через список.
  7. Используя библиотеку tkinter и Canvas. Нарисовать коробку на холсте с помощью задания координат и размеров через словарь.
  8. Используя библиотеку tkinter и Canvas. Нарисовать коробку на холсте с помощью задания координат и размеров через класс.