Классы
Вместо долгого вступления начнем сразу с примера. Сравните эти два варианта
hero1_pos = [100, 200]
hero1_vel = [10, 5]
hero1_life = 10
hero2_pos = [150, 300]
hero2_vel = [5, 5]
hero2_life = 20
hero3_pos = [200, 400]
hero3_vel = [0, 5]
hero3_life = 20
hero1 = Hero()
hero1.pos = [100, 200]
hero1.vel = [10, 5]
hero1.life = 10
hero2 = Hero()
hero2.pos = [150, 300]
hero2.vel = [5, 5]
hero2.life = 20
hero3 = Hero()
hero3.pos = [200, 400]
hero3.vel = [0, 5]
hero3.life = 20
Как вы могли догадаться этот код в обоих случаях создает переменную hero
обозначающую героя. Для того чтобы сохранить информацию о герое нам надо запомнить определенные параметры этого героя:
pos
- позицияvel
- скоростьlife
- жизни
В первом случае мы поступили как привыкли делать раньше: для каждого параметра героя мы создали отдельную переменную используя _
(hero1_pos
, hero1_life
и т.д.) а также продублировали все эти переменные для hero2
и hero3
.
Во втором случае все совершенно не так. Мы создали всего три переменные hero1
, hero2
и hero3
, а внутрь этих переменных уже поместили нужные параметры. То есть теперь hero1
- специальная переменная у которой есть параметры hero1.pos
, hero1.life
и т.д. Параметры с таким же именем есть и у переменных hero2
и hero3
.
Именно для создания таких переменных, содержащих параметры и нужны классы.