И правда, даже поиск о шаблонах проектирования в питоне как-то особо ничего не находит, кроме мнения, что "питону это не нужно". Казалось бы, что ещё надо для счастья идиоту? Но...
В итоге оказалось, что в методах классов надо переменные классов записывать как self.var.
Короче, везде надо добавлять self. Это раздражает.
Второй косяк с инкапсуляцией. Её просто нет. Если в С++ инкапсуляция доставляла мне гемморой и я ей не пользовался, потому что ленивый лох, то тут её просто нет. В качестве решения предлагают называть переменные и функции начиная с подчёркивания, чтобы другие программисты, плять, знали, что их трогать не надо.
И фиг бы с ним, но когда я пишу класс, я хочу оставить доступными только пару функций и переменных, через которые можно рулить объектом. Но в питоне хер спрячешь лишнее, в итоге, когда я нажимаю точку, чтобы посмотреть методы, мне просто реально высыпается туева хуча функций и переменных и искать нужные в этой каше банально неудобно. Не поймите меня неправильно, я хер забил бы на безопасность и что чужой дядя может не понять мой говнокод, но это просто неудобно при написании. Поставил точку - получил методы, а не кашу. И только так.
Поддержка синтаксиса и автодополнений в визуал студио какая-то корявая. Далеко не всегда, когда ставишь точку после имени какого-нибудь объекта видны доступные методы.
Учитывая, что питон считается самым удобным языком для программеров и вообще уть ли не преподносится, как единственный язык, приносящий удовольствие, мне это кк-то не зашло совсем. Это неудобно.
Вдвойне неудобно писать перед каждой переменной self. и начинать её с подчёркивания, ибо оно с шифтом и тянуться надо. Раздражает.
Для тренировки тупо переписал свою "диалоговую машину" на питон. Да, пару вещей оказалось более удобными. Да, некоторые встроенные функции слегка упростили задачу (хотя и с их заменой я вообще не запаривался). Единственный громадный плюс - практически прямая работа с json-файлами. Считал из файла, получил словарь. Сохранил словарь в файл одной строкой - получил json. Удобно, привычно, понятно. Как родное. В С++ с этим значительно похуже, ибо в итоге получается не родной словарь, а мутный rapidjson документ, который надо изучать на оффсайте.
Но, надеюсь, хоть в питоне я смогу осилить многофайловые проекты с пересекающимися классами, где из одного класса может вызываться метод другого. Например, при выкидывании из инвентаря я должен добавить объект на уровень, а значит иметь доступ к методу уровня.
Буду вникать дальше, конечно, но пока не буду учить всякие сторонние модули.