ну как я вижу спользования класса змейка. при ее создании snake = class(): я создаю визуальный объект а уже ее методами взаимодействую им но можно и создать внутри метода но мне кажется это ничего не меняет
зачем нужен класс? для чего вообще людям ооп стало нужно? пока не ответишь на эти вопросы вообще не приступай к использованию ооп на практике
ну допустим тогда как бы поступил ты и распланировал программу. сперва окно где ты выбираешь какие то данные потом уже создается холст и манипуляции с ним. зачем мне создавать и скрывать холст сразу при запуске игры если в дальнейшем мне прийдетс дополнительно скрывать и кнопки которые были созданы на root