Специальная, подарочная акция получения доступа к Django4!
Как, я, начал код писать в Python? Смотрите, если уперлись и ничего не получается.
Андрей, пока вы не осознаете всей важности этой темы.
Но со временем, вы поймёте, что разбираясь с абстракцией равносильно разобраться ООП.
Сейчас вы разбираетесь в способе мышления ООП, как видите он очень точен.
Ведь разобраться с абстракцией - это и == писать что думаешь, только в коде.
Пока в вашей голове общие фразы, а я хочу. что бы вы мыслили конкретными задачами дом, магазин, город, улица, предприятие.
Я могу точно сказать что будет дальше, если не оставите. Далее вас заинтересует вопрос организации кода, мы с вами его уже начали ставить.
В большинстве своём на курсах учат техническим моментам, вот это наследование, вот это абстрактный класс, только вставить в мозгах эти знания некуда.
На самом деле нужно понимать абстракцию и её виду и главное отличать интерфейсы от абстрактных классов, этот никак не связано с конкретным языком, это связано с тем, что бы понять это и начать видеть в жизни.
когда в голове будет пониматься организация кода, вы к ней придёте
Interface
|
Class Abctract (добавляем если хотим миксины, как множественное наследование)
@добавляем если нужно декораторы
Custom Class (добавляем если хотим миксины, как множественное наследование)
Это понимание - есть ничто иное, как почва, куда легко уже без вашего участия будут вставляться наследование, полиморфизм и др.
Так как будут пониматься и вы будете точно знать ответ на вопрос Зачем. а не как.
При этом это понимание на картинке и есть способ размышления над кодом.
А способ реализации это уже методы, а откуда растут методы с функций.
-------------------------------------------------------------------------
Если пока не понятно, ничего страшного, просто не останавливайтесь. Всему своё время.
Я лишь хотел объяснить одну важную деталь.
То как построены большинство курсов где под понимаем классов имеют в виду наследование, это не верный подход.
Представьте себе участок земли, где вы будете делать грядки и представьте себе, что вы никогда не видели грядок.
Когда в питон на курсах учат наследование и понимают это, как способ мышления, ничего не получается, ведь если я вам покажу лопату и скажу. что лопатой можно копать, то навряд ли вы будете хорошим дачником.
А вот если я вам расскажу, как выращивать клубнику и как один из главных элементов расскажу. что такое грядка и какая должна быть земля, то лопата для вас станет инструментом, а не объектом изучения.
Так вот рассуждая ооп, как о наследовании и прочем. Вы просто изучаем лопату, а когда разбираемся с интерфейсами и абстрактными классами, то мы говорим о грядках.
Тогда мы говорим уже об организации огорода (или в программировании кода).
Суть в том, что бы понять что такое грядки, не нужно быть дачником и что бы понять чем отличается интерфейс от абстрактного класса не нужно знать никакой язык программирования.
Но вот, когда мы поймём все же что это такое, то у нас оказывается начинает прорастать понимание, что код оказывается можно организовать в зависимости от задачи.
А вот уже сама реализация уже страиваться по надобности.
Вообще то это направление уже давно изучено и это явление называется поттерны, то есть шаблоны проектирования кода они же являются и шаблонами мышления над кодом (чем мы с вами и занимаемся) в стиле ооп они же являются в свою очередь способом организации кода, и они же являются самой почвой куда мы встраиваем ооп, но тогда оно иммеет в голове место (то есть почву) и понимание зачем в зависимости от задачи.
Тогда у нас появляется место в голове куда можно поместить наследование, как способ реализации кода. А что делают в школах программирования преподносят. не как способ, а как часть мышления.
P.S. Если вы заметили, то в школе большое внимание уделяется функциям, все верно - это чисто технический способ реализации кода. Здесть все очевидно. Изучил функции, в кармане имеем сразу же классы и сами классы (работа и исключения), так же работают по шаблонам функций.
P.S. 2
Сейчас будет немного сложно, это приходит намного позже.
Программист начиная изучать программирование сталкивается с проблемами.
Вы что думаете я зря разместил это домашнее задание, которое вы выполняете, я разместил целенаправленно, если один сделает, то другие обратят внимание.
Как? Человек погружается в мир реализации и ему легко понятно, как работает функция, как работает класс, как работает метод. Но опасность поджидает дальше. Программист погружается в функции все больше и больше о них узнавая и со временем учится весь язык пропустить через функцию, ведь в функцию (это джействие) встраивается все в языке. Изучать функции рано == писать.
Опасность поджидает чуть далее. Программист работает в пределах конструкции и ему очень понятно, как собрать в список, что то извлечь, но вот вопрос, как все это применить остаётся белым пятном.
На самом деле преподаватель должен своевременно направить внимание ученика в верное русло. То есть сделать то, что мы делам с вами. Начать изучать вопросы организации кода, которые равны способу мышления.
ПРи этот нонсенс заключается в том, что каждый человек от природы программист только не называет свои действия терминами программирования.
Этому у нас в школе посвящен раздел разработка (делать уроки по мере выхода)
И когда преподаватель направляет внимание ученика на проектирование или организацию кода, а если ещё точнее формирование понятий организации кода, то мышление сразу появляется, оно ни откуда не приходит оно просто появляется, так как каждый программист до этого пользовался и абстрактными классами в жизни и интерфейсами, он просто осознает и говорит себе...ага.... вот когда я хочу описать целое предприятие, то я начну с интерфейса, что бы все объединить в завод, потом абстрактными классами опишу направления и конкретными цеха.
Что происходит в этот момент, верно обучаемый выходит за пределы кода и начинает размышлять построением кода, а в это время у него уже есть опыт по реализации кода в функциях, ну что ж ему остаётся изучить понятия, такие как наследование и так далее, и реализовать это при помощи тех методов, которые он знает.
Тогда все складывается в единую картину.
В современном мире часть задачи взяли на себя фреймворки, но им нельзя доверять полностью, свое мышление, ведь это уже продуманная задача, то есть я хочу сказать, что работая с каким то определённым фреймвокрм стать программистом нельзя, можно стать любителем.
А программист рождается вот так как мы с вами путем тяжелых размышлений, кучей сомнений и тыканий, но приходит тот момент, который нельзя перепутать ни с чем, бац и все проявилось, все понятно.
То есть рождение программиста это и есть работа в нескольких направлениях по минимуму техническая сторона реализации языка, как мы начали с функций, понимание проектирования, которое не относится ни к одному языку конкретно, а так же изучение нескольких языков, сильно пробивает мозги.
А уже потом под силу любые фреймворки, ведь мозг программиста не был ничем ограничен.
ПРосто нужно немного времени, когда придёт осмысление того о чём я писал, все станет на места, а до этого просто не нужно останавливаться.
------------------------------------
Интерфе́йс (англ. interface) — программная/синтаксическая структура, определяющая отношение между объектами, которые разделяют определённое поведенческое множество и не связаны никак иначе. При проектировании классов, разработка интерфейса тождественна разработке спецификации (множества методов, которые каждый класс, использующий интерфейс, должен реализовывать).
Прочтите фразу
которые разделяют определённое поведенческое множество и не связаны никак иначе.
Я же не зря у вас спрашивал, как будут взаимодействовать вилка и плед?
А теперь гляньте на свой код.
И задайте себе вопрос можете ли вы описать, так все самолёты мира или историю самолетов, таким образом.
В вашем случаем максимально все известно и можно было использовать обычный класс.
А я вам задам вопрос, а как же тогда описать все летальные объекты мира, не только самолёты, но это нло, шары летающие, квадракоптеры и все что летает, с вашим подходом нынешним можно?
А ведь можно и в одном коде, если понимаете разницу между абстрактным классом и интерфейсов и понимаете где чему место.
Видите сколько всего мы вытянули наружу. Поздравляю вы сейчас в настоящем программировании, как исследователь, гдле все познается на личном опыте, ничего не бывает эффективнее.
Вcе записи подраздела.
Сейчас вы проходите урок: Поздравляю вы сейчас в настоящем программировании, как исследователь, где все познается на личном оп
<< Назад | Далее >>
Все уроки с тегом: интерфейс питон