Obiektowość
Gdybym miał wskazać fundamentalną rzecz w obiektowości, to byłaby to możliwość tworzenia nowych typów, przeznaczonych do pracy z wybranym zagadnieniem.
Tworzenie nowych typów zmienia sposób myślenia o danych w programie.
Dla przykładu, pisząc grę snake, warto zacząć od stworzenia klasy Point, która będzie reprezentować punkt w przestrzeni dwuwymiarowej:
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
Kolejną klasą o której warto pomyśleć to klasa, która będzie reprezentować węża, np. klasa Snake:
class Snake:
def __init__(self, direction, body):
self.direction = direction
self.body = body
Na sam koniec pozostaje stworzenie klasy Game:
class Game:
def __init__(self):
self.level = 1
self.width = 300
self.height = 600
self.food = Point(200, 200)
self.snake = Snake("UP", [
Point(100, 100),
Point(100, 120),
Point(100, 140)
])
Operowanie na klasach, znacznie ułatwia myślenie o problemie, ponieważ pozwala na dodawanie funkcjonalności, a same dane są zwarte.
Jeśli ten temat Cię zaciekawił to zachęcam Cię do odwiedzenia strony: kursy devpython Znajdziesz tam pakiety, które krok po kroku wprowadzą Cię w temat obiektowości.