№1 Практическая онлайн-школа обучения языкам программирования Python (Django), JavaScript, Kotlin В. Бовсуновского.

Специальная, подарочная акция получения доступа к Django4!

Как, я, начал код писать в Python? Смотрите, если уперлись и ничего не получается.

4. Понять разницу между атрибутами класса Python и атрибутами экземпляра Python.

-

Давайте попробуем помочь ребятам через Дениса.

  1. Итак, Денис с составление плана справился, но выводы. как и что изучать сделать не смог, в силу малого опыта. (поправимо).
  2. Не получилось пока понять на чём остановить внимание и что есть корень в классах. (поправимо).
  3. Делаем вывод первый, нам нужно понять, как, где и почему и в силу, каких особенностей используются атрибуты класса?
  4. Как, где почему и в силу каких особенностей используются атрибуты экземпляра.
  5. исходя из пункта 3 и 4, нам нужно реализовать понимание полуфабрикатов в языке (вы это знаете и это то что точно запоминается). Иными словами программные решения и их обоснование.
  6. Мы не сможем понять и сделать все вышеизложенное, если не понимаем разницу между атрибутами класса Python и атрибутами экземпляра Python.
  7. Вывод 1. Понять эту разницу.
  8. Вывод 2. Видеть эту разницу в исходном коде.(любом, то есть читать код, как следствие писать так же получится точно)

https://github.com/beeware/toga/blob/main/core/src/toga/app.py

  1. Вывод 3. Эти различия должны считываться моментально, как параметры функций в функциях (это относится к любым языкам).
  2. Обязательный минимум(кровь с носу). Профессиональное владение функциями и проверить себя, что пишите функции в любых языках.
  3. Зачем изучать атрибуты, что получить конкретно применение атрибутов класса и атрибутов экземпляра Python.
  4. После понимания, считывания, будет понятно применение и можно перейти к анализу применения и выписать. как я вас учил 12-15 ситуаций.
  5. Метод работы с атрибутами, только через исключения(цель понять поведение и связь с исключениями), все остальное пространство имён и так далее будет понятно в ходе примеров.
  6. Это первый шаг к качественному изучению ООП(любого языка), без этого дальше в ООП делать нечего и нет смысла вообще тратить силы. Денис, Вам откроется интересная картина, Вы можете проанализировать программы разных курсов и везде Вы увидите, что на атрибуты уделено не более чем несколько часов, будут ли писать эти ребята? Все очевидно. (вам это откроется чуть позже, когда будете понимать о чём я говорю и читать в коде). Иными словами получается, что без разницы что будем сеять морковь, лук или огурцы, а ждать помидоров.(вспомните, пример с теплицей. который я Александру описывал).

Общий вывод. Понимание различий  между атрибутами класса Python и атрибутами экземпляра Python должны быть проработано с нуля и сразу до высочайшего уровня и так же считываться на лету, как параметры функций и именно отталкиваясь от этих знаний выстраивать дальнейшую логику.

Метод проработки, через исключения.

Зачем - что бы понять разницу, для применения атрибутов класса и экземпляра(кстати у них разные пространства имён и при одинаковых именах будет выдаваться. что-то одно, то есть нужно понять ещё и приоритет)

Когда будет понятна разница между атрибутами класса Python и атрибутами экземпляра Python, станет понятно их применение и ответ на вопрос почему именно так отпадает сам, так как, атрибуты класса и атрибуты экземпляра имеют разный вызов разные пространства имён и исходя из этого абсолютно разное применение(ведь не зря я вам дал пример с джанго выше). Видимость и вызовы будут в этом случае иметь значение.

Практический навык отработать на исходном коде и использовании API(писать сайт, программу) и чётким выделением атрибутов класса и атрибутов экземпляра, сразу анализируя ситуации, сопоставляя исходный код и применение. (только так будет видно)

И Ура, путь в ООП тогда открыт.

План набросал общий, при работе в этом направлении он приобретёт намного больше подробностей, но направление должно быть понятно.

Если кто-то сомневается. то открываем файл 1

https://github.com/beeware/toga/blob/main/core/src/toga/app.py

файл 2

https://github.com/django/django/blob/main/django/views/generic/list.py

или любой другой в любом языке.

Я лично там ничего не увидел практически, кроме атрибутов.

Идея думаю понятна.

Перейти к уроку

5. Атрибуты Питон. Как и где научиться делать профессионально работу программиста Python?

Дмитрий(swaytornado). Вы. когда будете смотреть видео,

что нужно увидеть в этом видео, это короткая статья об этом.

https://www.youtube.com/watch?v=Bun1_H4bxbw

прочтите это, а после видео опять прочтите.

Видео не могло быть записано, полностью, как инструкция, иначе не было бы пользы.

Но вот цель была.

  1. Для большинства программистов исходный код - это нечто из нереального мира.

Но так ли это?

В чём их ошибка, они пытаются читать документацию. а потом пробуют смотреть исходный код, но так как там ничего не понятно забрасывают.

А что нужно смотреть в исходном коде?

Исходный код смотреть нужно учиться, как раз об этом это видео и оно отражает заполнение логики класса или метода.

Предварительные условия:

Профессиональное владение функциями и параметрами.

Знание объектов.

И в видео я показал, что Вы как вопрошающий учитесь видеть идею.

Но обратите внимание, Вы используете подход, который завязан на атрибуте, но при этом вытаскиваете логику.

Простота в том, что на вряд ли вы наберёте набор логик больше 20-ти.

Ну например логика итераций (да сами итерации могут иметь до 10 вариантов и больше, но ведь сама логика одна

метод проверки или информации

self.attr.method

self.attr.__help__

применение типа данных, как в тога 43 строка

https://github.com/beeware/toga/blob/main/core/src/toga/app.py

self.elements.add(window) #add встроенный метод множеств - а элементов три, но на их месте может быть и дандер(понять в каких ситуациях третий нужен, согласитесь это действие и как правило извне)

и так далее

проверка......

Вы выясняете это смотря на код.

Важно. Обратите внимание мы не ищем ответ как работает там что-то в программе, смотрим документацию и если не понятно, то смотрим исходный код. (это потом так будет)

А сейчас нам нужно подойти к этому, поэтому мы ставим задачу вычленить логику в принципе, как некое действие, которое можно описать и потом использовать в схожих ситуациях(это я называю полуфабрикат)

так вот этих логик принципиальных очень мало их и нужно увидеть и записать себе. а потом чем дальше, тем лучше это будет видно.

Что бы быть профессиональными, ещё раз повторяю мы заходим в данном случае с атрибутов, но цепляем логику.

То есть у нас в голове есть идея ковырнуть, при помощи атрибута, при этом вычленить сам элемент, что это метод, переменная зачем он здесь и как и что делает.

Если б мы делали. как делают большинство, просто смотрят доки, а потом пытаются понять в исходном коде, то выхлоп нулевой, ведь нас интересует не что происходит, а как происходит, посредством чего происходит и почему именно так?

Это похоже на пульт, нажали кнопку и посмотрели. а потом запоминаем относительно расположения и нужного действия.

Но это самое нужно действие нужно сначала создать искусственно, как, мы сделали с атрибутом.

Делая так. мы начинаем видеть полное действие и этих полных действий не так уж и много, дальше просто будут меняться методы, переменные и решаться разные задачи, но например. когда мы будем видеть вот это

self.elements.add(window)

мы будем понимать, что это дополнительное действие вместо адд может быть что угодно, смысл будет понятен, по конечному будем определять что происходит.

Начнёт работать и обратное, если я хочу провериить класс могу ...

если провести действие могу ...встроенный метод

а могу и сам написать......

и везде будет сам объект , в данном случае window, который был ранее проверен, что бы другого не добавили.

Но смысл не меняется, сама процедура идентична, а вариантов десятки.

Кроме этого потом начинаем делать три в одном.

Читать доки

Смотреть исходники

Писать программу

и если ранее была проделана работа, которую описал и о которой видео, то исходники открываются.

Да дополнительно сказал, не нужно много сейчас с SOLID, следите пока за одним, что бы класс выполнял, только какое то одно парное действие, вбейте эту привычку. так начнёте видеть его и код будет чистый и дорабатывать пока не посинеешь и все запоёт. Пока хотя бы это правило.

И там же сказал, что вычленяем само действие класса и не путаем с дополнительными методами, как показал на примере WindowSet, то есть методы, которые обеспечивают работу самой конструкции(проговорил в видео)

В итоге у нас вырисовывается картинка

атрибуты говорили от чего оттолкнуться:

Объекты класса поддерживают два вида операций: ссылки на атрибуты и создание экземпляра.

потом выделяем итерации и основательно изучаем

дорабатываем типы данных, а главное методы.

Только не берите много, я сказал 3 -5 одного второго третьего и применяйте.

так на выходе у вас будут конкретные полуфабрикаты решения задача в теле классов. то что сейчас вам и нужно.

Думаю подсказал достаточно.

Важно, что бы теперь к этому пришли практически и потом будете офигевать, как я этого всего ранее, не видел.

Просто не знали, что нужно увидеть.

И это первые шаги, дальше будет интереснее.

Перейти к уроку

7. Атрибуты. часть 1.

Дмитрий написал:

Вот эту фразу можно переписать так:

Все данные в программе Python представлены классами или отношениями между классами.

А из чего состоят классы? Первое, что каждый класс образует своё пространство имен. Второе, чем наполнен класс. Атрибутами. Это поля и методы. У методов есть доступ ко всем полям.

А что есть производной от класса. Это экземпляр класса, который хранится в объекте класса. Который связывает конкретно этот класс с этим объектом, и соответственно с его атрибутами, то есть наполнением.

Класс, это чертеж нашего будущего объекта.

В коде мы работаем с объектами класса. И используем методы, которые являются пользовательскими функциями, написанными внутри класса, чтобы изменять этот объект, в соответствии с тем, что он позволяет с собой сделать.

Бовсуновский.

А я хочу, что бы Дмитрий разобрал память класса по кусочкам и этим уже оперировал. Только конкретика, больше никаких общих слов.

Перейти к уроку

8. Атрибуты. часть 2.

Давайте смотреть что внутри объекта из чего он состоит.

Перейти к уроку