Ниже прочтите реальную историю Михаила он там рассказал все секреты, как стать программистом.
Добрый день Валерий!!!
Михаил, спасибо большое.
С вашего позволения я выложу ваше письмо.
Я нашёл главные словаи теперь я спокоен, что вы действительно программист.
Именно программист, вы только что описали чем отличается таланливый программист от не талантливого, чем отличается человек, который просто что-то учит в программировании, но так и не понимает до конца.
вот ваши слова:-".....потому что это важно в программировании нет мелочей надо знать или знать где найти...."
Как только человек начинает понимать эту мысль и ставить её во главе угла, именно на практике, то его мозг заостряется, как острое лезвие, на глобальных вещах в программировании, то есть категориях, при этом он (в данном случае вы, я потом ещё в видео поясню). Продолжу при этом, категории изучающий выделяет сам и уже тогда легко сосредоточится, что нужно взять сейчас, что нужно понять, а что можно пока опустить, а использовать по надобности.
Следуйте Михаил этим путём и далее и вам покоряться любые вершины.
Я очень хорошо подметил, что вы обращаете внимание на сам контекст слов и их смыл в обучении, я заметил по методу супер, потому что обращал внимание, что это палочка выручалочка в любых приложениях, так же заметил, что вы стали следовать сосветам и пошли изучать котлин, это резко оттеняет два языка и они откладываются уже на очень осознаном уровне и наконец-то послденее к этому моменту домашнее задание по методу __init__ ведь Сергей Осадчий довольно классно изложил, но у вас я увидел ваше прочтение в виде рассуждения, что меня откровенно поразило.
Вам подсказка.
А теперь разберитесь с методом __new__
Начните с этого раздела
https://groups.google.com/d/msg/spb-tut/VaF0x8EsCHY/P-ZMsII-AwAJ
потому что я ничего не говорил, но Сергей осадчий уже вижу начал применять (в конце страницы блокчейн, есть ссылки на код)
http://blockchain.spb-tut.ru/blockchain-plus-python/blocks_in_blockchain/
Вот как стоит поставить вопросы.
Что делает метод __init__ в отличие от метода __new__?
При помощи одного и второго (посмотрите ссылки, которые указал выше), можно создавать классы,
но метод __new__ это уже шаг в сторону метаклассов, хоте делает то же самое что и метод __init__ (но разница есть)
Постарайтесь запомнить метод __new__ и потом при чтении справки будете лловить себя на мысли, что этот метод много где вызывается.
Когда будете писать код, то пишите с __init__, а потом то же код с __new__, вы обнаружите что у вас развязаны руки и быстро пойдут в дело другие методы.
Спасибо Михаил, что у вас получается, я действительно удивился на сколько глубок вы въелись в отношения многие ко многим в джанго, что написал видео, у вас очень хороший подход комментирования кода для себя. каждый код, который для вас новый вы коммаентируете, причём с понимаем, что бы потом получить полную картину, это тоже очень важный момент и ответ на вопрос, как изучить что угодно (спасибо вам за хороший пример).
https://www.youtube.com/watch?v=i073sN5hTjY&t=211s
Когда читаю ваш код, то видно вы понимаете о чём пишите, я спокоен, вы можете браться за проекты любой сложности, главное не останавливайтесь.
Да в программировании важно помочь войти человеку, именно до момента, когда он сам начинает понимать, что у него получается - это и есть изначальная цель школы и я знаю, что мне удаётся это.
Как вы правильно заметили Михаил и сделали это на практике нужно учится системно, постоянно вырабатывая свою собственную систему понимания, у вас это получилось.
Это получилось у Осадчего Сергея
https://spb-tut.ru/index_all/?page=375
Это получилось у Михаила Галанина, который в банке работает:
https://spb-tut.ru/info/history/?page=255
Ещё раз благодарю, Вас Михаил, что у вас получается, спасибо большое за искреннюю историю, не останавливайтесь, я знаю что вы взялись за котлин - это здорово, помните, при изучении котлин всегда в уме прокручивайте мысль, а как это происходит в Питон, не ленитесь отвлекитесь на пару минут залезьте в другой язык и прочтите и переосмыслите, пока не будете понимать, что точно поняли разницу в том или ином действии между языками. Зачем это нужно? Основным итогом изучения котлин, должно стать не только написание мобильных приложений, а вы должны начать писать на любом языке и это точно произойдёт, чуть позже вы столкнётесь и с другими языками и точно споймаете себя на мысли. что я это уже делал и как окажется, что любой новый язык будет даваться легко, так как нужно понять разницу всего лишь. Все языки сходны по структуре.
И осталось упомняуть ещё один фрагмент, на первом этапе при изучении котлин, вам будет не просто переключаться, но это нормально и это нужно тренировать, если вы будете намеренно несколько дней делать котлин, потом несколько дней пайтон, то чем дольше по времени это будет происходить, тем яснее вы начнёте осознавать, что тяжесть переключения, оказывается была всего лишь у вас в голове, так как на самом деле в пайтон строка и в том же котлин строка, просто по разному записываются.
Помните ваша цель при изучении двух языков это понять вообще структуру языков и объеденить её у себя в голове, а дальше, если помните с чего я начал своё письмо, с этих вот слов:
вот ваши слова:-".....потому что это важно в программировании нет мелочей надо знать или знать где найти...."
Дальше всё просто, посмотрели справку и сразу написали код.
Да, всё действительно так просто, если подходить системно, как это сделали вы.
Михаил, спасибо вам большое за ваш личный пример.
# -*- coding: utf-8 -*- ''' __init__ - это специальный метод (конструктор класса в классах) Роль -его роль это автоматически передовать ,объекту, экземрляру класса, параметры класса Как это работает? - он начинает работать с того момента когда создается объект(экземпляр класса) Что он делает? - он передает параметры класса при создании объекта(экземпляра класса) Как это влияет на удобство? - Меньше кода, не нужно каждый раз при создании экземрляра класса обращаться к методу (время) ''' class Menu(object): """ Описать меню с помощью метода__init__ первое, второе, мясное блюдо, салат, чай, к чаю """ def __init__(self, soup, garnish, meat, salad, tea, biscuit): self.soup = soup # Ссылке self присваиваем параметр. self.garnish = garnish # Ссылке self присваиваем параметр. self.meat = meat # Ссылке self присваиваем параметр. self.salad = salad # Ссылке self присваиваем параметр. self.tea = tea # Ссылке self присваиваем параметр. self.biscuit = biscuit # Ссылке self присваиваем параметр. print('Первое блюдо: ', self.soup, ',', 'Гарнир к горячему: ', self.garnish, ',', 'Горячее: ', self.meat, ',', 'Салат: ', self.salad, ',', 'Чай: ', self.tea, ',', 'Десерт: ', self.biscuit, '.') lunch = Menu('Борщ', 'Рис', 'Свинина', 'Винигрет', 'Зеленый', 'Шарлотка') # Экземпляр класса dinner = Menu('Молочный', 'Макароны', 'Курица', 'Морковный', 'Травяной', 'Вафли') # Экземпляр класса class MenuWithoutInit(object): """ Описать меню без помощи метода__init__ первое, второе, мясное блюдо, салат, чай, к чаю """ def menu(self, soup, garnish, meat, salad, tea, biscuit): self.soup = soup self.garnish = garnish self.meat = meat self.salad = salad self.tea = tea self.biscuit = biscuit print('Первое блюдо: ', self.soup, ',', 'Гарнир к горячему: ', self.garnish, ',', 'Горячее: ', self.meat, ',', 'Салат: ', self.salad, ',', 'Чай: ', self.tea, ',', 'Десерт: ', self.biscuit, '.') new = MenuWithoutInit() # Экземпляр класса new.menu('Щи', 'Гречка', 'Говядина', 'Сельдь под шубой', 'Черный', 'Овсяное печенье') # Обращение к методу класса --
https://www.youtube.com/watch?v=AIWrDO3MvD4&t=16s
http://blockchain.spb-tut.ru/blockchain-plus-python/quick-start-blockchain/
Быстрый старт Котлин, следующий шаг в развитии джава, если сомневаетесь, что это сложно, посмотрите нао котлин в сравнении с джава. (http://kotlinlang.spb-tut.ru/about/)
Быстрый старт Котлин:
http://kotlinlang.spb-tut.ru/info/fast_start/