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.