Форум сайта python.su
0
У меня проблемы с пониманием OOP.
Вот, например, Blueprint. Что это значит?
Можно с примерами, пожалуйста?
Спасибо
Офлайн
2
Savely
Вот, например, Blueprint. Что это значит?
The Blueprint - независимый сайт о моде, красоте…Пониманию ООП сайт о моде не поможет.
Модный интернет-журнал The Blueprint — независимое издание о моде, красоте и современной культуре.
Офлайн
186
> Вот, например, Blueprint. Что это значит?
Скорее всего ты имеешь в виду шнягу из Flask-а. Её можно представить как способ инкапсуляции уровня модуля, но к ООП это никакого отношения не имеет.
Офлайн
857
SavelyBlueprint - это не ООП. Это абстракция, которая в разных областях называется одинаково, но при этом обозначает разные вещи. Это типа шаблона что-то, который можно заполнять какой-то конкретикой. Шаблон или схема, что-то вроде этого. В питоне во Flask есть они, там это что-то вроде контейнера, который нужен для организации модульности сайта или веб-приложения. Ну ты кусок веб-приложения засовываешь в блюпринт, в котором всё своё, поэтому там можно использовать свои маршруты, свои части всякие, свои шаблоны страниц и так далее, и всё это автоматически будет становиться инкапсулированным внутри этого блюпринта и действовать под его именем. И всё веб-приложение становится набором блюпринтов, в которых шаблоны имеют одинаковое всё, но это не перемешивается между собой, потому что блюпринты хорошо разделены и отделены друг от друга, как отдельные коробочки. Поэтому можно взять целый блюпринт, вытащить его из веб-приложения и заменить на другой или закинуть его в другое веб-приложение. Это всё модульность и её свойства. Также если в сайте или веб-приложении есть похожие между собой части, то тоже можно брать этот блюпринт один и размножать его, заполняя эти экземпляры немножко разными детальками. Получается общая конструкция, которая повторяется, но при этом каждая копия работает немножко по-своему. Чтобы не писать это всё каждый раз, есть вот эта заготовка, которую можно просто скопировать. Это в общих чертах, потому что везде оно означает разные вещи.
У меня проблемы с пониманием OOP.
Вот, например, Blueprint. Что это значит?
Офлайн
124
SavelyПредставь, что ты пишешь программу для офиса, где стоит несколько принтеров. Тебе нужно помнить про каждый: включён он или выключен, сколько в нём бумаги, печатает он сейчас или простаивает.
У меня проблемы с пониманием OOP.
принтер1_включен = True
принтер1_бумага = 50
принтер1_печатает = False
принтер2_включен = False
принтер2_бумага = 10
принтер2_печатает = False
принтер1 = Принтер(бумага=50)
принтер2 = Принтер(бумага=10)
принтер1.печатать() # бумага внутри принтер1 уменьшилась, принтер2 — не тронут
принтер2.сообщить_о_себе() # расскажет только про себя
Каждый объект живёт своей жизнью и ничего не знает про остальных. Ты просто говоришь: «Принтер номер 1, печатай!» — и не думаешь, где там лежат переменные и как их не перепутать.
Офлайн