Тайм-коды: Модули (Переработанная версия коммента ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-ppJfqW7fL80.html&lc=UgyWCUfFUNoEjzlWnVx4AaABAg) 0:00 Приветствие 3:00 Несколько слов о процессах в программировании, об организации этих процессов, о интерфейсах -> 4:19 Этапы проекта -> 5:19 О проработке интерфейса (взаимодействие частей проекта, структурных единиц) 6:39 Средства декомпозиции 9:19 Почему модули -> 19:30 Про import (кратко, подробнее 35:20) 23:05 Подкаталоги. Пакеты 24:47 Про зависимость/независимость модулей друг от друга -> 27:41 Интересная статья на Habr (habr.com/ru/post/157831/) : "Мы сделаем этот велосипед за месяц" -> 28:57 Про ключевые темы на meetup-ах -> 34:10 Про независимость на примере игры "Кликни шарик" 35:20 3 способа подключения модулей 38:14 Про импортирование модулей -> 41:27 Про то, как отличить просто импорт от самого вызова -->> 41:38 Используем встроенную переменную __name__ (в начале и в конце двойные нижние подчеркивания) -->> 44:59 Про if __name__ == "__main__" -> 45:59 Про разницу from и import 48:33 Про использование __name__ (например, для тестирования) 51:00 Про объекты, на примере с модулем -> 51:40 Добавление функций для взаимодействия с объектом в модуль 54:19 Про доступ к переменной Объекту -> 54:50 Из основного файла (опосредованно) Небольшое отступление: ==>> 55:30 Про полагание на интерпретатор и вывод ошибок ==>> 56:30 Про автодополнение и важность разделения на модули -> 58:20 Прямой доступ к объекту, из модуля, в основном файле 1:00:00 Про пространство имен. Правило LEGB (Local -> Enclosed (или unlocal) -> Global -> Built-In) -> 1:03:02 Про порядок поиска имен, на примере print(x) -> 1:04:50 Про порядок поиска имен, на примере функции -> 1:06:26 Про порядок определения функций в структуре кода 1:09:00 Про глобальные переменные для использовании в функциях
Я в восторге, такого изложения материала не встречал. Лектор которого как гуру надо слушать,впитывать каждое слово. Повезло ученикам данного вуза,что могут получить такой объем очень ценной информации. Тимофей Хирьянов, спасибо Вам за ваши труды.
Тайм-коды: Модули 4:19 этапы проекта: 1) декомпозиция, 2) сборка 5:19 для этого нужно проработать интерфейсы (взаимодействие частей проекта, структурных единиц) 6:39 средства декомпозиции: 1. функции, 2. модули (пакеты модулей), 3. объекты 9:19 почему модули 23:05 подкаталоги. Пакеты 24:47 зависимость модулей друг от друга 27:41 интересная статья на habr : "Мы сделаем этот велосипед за месяц" 28:57 ключевые темы на meetup-ах: 1) архитектура программы (декомпозиция на модули), 2) интерфейсы модулей, 3)ответственность модулей 35:20 3 способа подключения модулей: 1) import модуль 2) import модуль as сокращалочка_модуля 3) from модуль import или точтонадо через запятую или *(всё) # все пространство модуля подтягивается прямо сюда (возможен конфликт имен, например если несколько заимпорчено, содержащих одинаковые имена) 38:14 содержимое того модуля, который импортируется, выполняется 41:27 как отличить просто импорт от самого вызова 41:38 __name__ # в каждом модуле есть эта встроенная переменная (и она везде своя, разная) 41:46 _ _ имя _ _ служебные, встроенные, built-in переменные 44:59 if __name__ =="__main__": значит файл будет заимпорчен, а не запущен. Но, если его запустить не как модуль, то он таки кое-что сделает 45:59 импортируешь через from -> обращаешься к переменным по_имени импортируешь через import -> обращаешься к ним через имя_модуля.(точка)по_имени 48:33 либа может сама свой модуль потестить, независимо от main-модуля 50:45 объекты в модулях 54:19 доступ к переменной Объект между модулями: можно доступ через функции, а можно из главного модуля 58:28 if "что-нибудь" in string: 59:09 переменную можно изменить из другого модуля 1:00:00 Пространство имен. Правило LEGB (1)Local -2) Enclosed - 3)Global - 4)Built-In) 1:02:02 built-In встроенное Глобальное пространство 1:06:26 переменная должна быть определена не к моменту описания функции, а к моменту её вызова 1:09:00 global x # модификатор, делающий изнутри функции переменную глобальной
Смотрю количество просмотров и камментов под каждой лекцией цикла и вижу, что модели поведения студентов и ютуберов схожи. Что неудивительно, но интересно...
Подскажите import где ищет модули? В локальной папке или во вложенных тоже? И например если рядом две папки с разными проектами но файлы(модули) с одинаковыми именами какой подключиться? Разъяснит кто знает пожалуйста? Или сылку где это доступно разъяснено.
В Ютюбе невозможно натыкать видео даже с подписками чтобы они стали удовлетворять требованиям обладателя аккаунта причём большинство неподходящего видео из низшего порядка , и получается что те кто управляет массами не заинтересованы в развитии и стремлению к идеалу .
from youtube import tkhirianov from russia import все_учебные_заведения_страны def main(): for x in tkhirianov.все_лекции(): мечта(x) def мечта(текущая_лекция): for x in все_учебные_заведения_страны(): x.append(текущая_лекция) if __name__ == "__main__": main()
Traceback (most recent call last): ImportError: detected GOVNOVUZ_RF, does not accept NotImplementedError: not real мечта TranslateError: englishe is not defined EnvironmentError: a lot of stupid people
Тимофей, вопрос ни по лекции ... Зачем клавиатуру к ноутбуку подключили если на ноутбуке есть клавиатура? Задавался вопросом об эффективности работы на ноутбучной и обычной клавиатуре ..
А зачем в 50:20 делать bar(2,2) == 4, если можно сделать bar(2,2) != 4 и не писать else. И мы говорим если bar() не равен должной сумме, то пусть вылезет ошибка, а иначе не произойдет ничего и программа продолжит работать.(не нужен положительный ответ)
Тимофей, очень бы хотелось, чтобы не только Васи, Пети и Коли были примерами тех, кто что-то делает, но также Маши, Тани и Лены. В остальном - все превосходно.
Было бы очень неплохо, если бы этот курс лекций был в 20 минутном сжатом варианте для тех, кто вкуривает с первого быстрого раза :) Потому как эти лекции рассчитаны на массы и то, что можно объяснить за 20 сек, объясняется за 20-30 минут. Устал смотреть... И да, маэстро, "что-то серьезное" можно написать за 2 недели в одиночку! 15 лет практики дают такие возможности.