Тайм-коды: Модули (Переработанная версия коммента ruclips.net/video/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 # модификатор, делающий изнутри функции переменную глобальной
Я в восторге, такого изложения материала не встречал. Лектор которого как гуру надо слушать,впитывать каждое слово. Повезло ученикам данного вуза,что могут получить такой объем очень ценной информации. Тимофей Хирьянов, спасибо Вам за ваши труды.
Смотрю количество просмотров и камментов под каждой лекцией цикла и вижу, что модели поведения студентов и ютуберов схожи. Что неудивительно, но интересно...
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
В Ютюбе невозможно натыкать видео даже с подписками чтобы они стали удовлетворять требованиям обладателя аккаунта причём большинство неподходящего видео из низшего порядка , и получается что те кто управляет массами не заинтересованы в развитии и стремлению к идеалу .
Подскажите import где ищет модули? В локальной папке или во вложенных тоже? И например если рядом две папки с разными проектами но файлы(модули) с одинаковыми именами какой подключиться? Разъяснит кто знает пожалуйста? Или сылку где это доступно разъяснено.
Тимофей, вопрос ни по лекции ... Зачем клавиатуру к ноутбуку подключили если на ноутбуке есть клавиатура? Задавался вопросом об эффективности работы на ноутбучной и обычной клавиатуре ..
А зачем в 50:20 делать bar(2,2) == 4, если можно сделать bar(2,2) != 4 и не писать else. И мы говорим если bar() не равен должной сумме, то пусть вылезет ошибка, а иначе не произойдет ничего и программа продолжит работать.(не нужен положительный ответ)
Тимофей, очень бы хотелось, чтобы не только Васи, Пети и Коли были примерами тех, кто что-то делает, но также Маши, Тани и Лены. В остальном - все превосходно.
Было бы очень неплохо, если бы этот курс лекций был в 20 минутном сжатом варианте для тех, кто вкуривает с первого быстрого раза :) Потому как эти лекции рассчитаны на массы и то, что можно объяснить за 20 сек, объясняется за 20-30 минут. Устал смотреть... И да, маэстро, "что-то серьезное" можно написать за 2 недели в одиночку! 15 лет практики дают такие возможности.
Тайм-коды: Модули (Переработанная версия коммента ruclips.net/video/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 # модификатор, делающий изнутри функции переменную глобальной
Я в восторге, такого изложения материала не встречал.
Лектор которого как гуру надо слушать,впитывать каждое слово.
Повезло ученикам данного вуза,что могут получить такой объем очень ценной информации.
Тимофей Хирьянов, спасибо Вам за ваши труды.
Тимофей Фёдорович, спасибо огромное за материалы и за их качество изложения!
Обалдеть, такие лекции ещё кто-то прогуливает?!
Большая часть того что он говорит, более менее продвинутым понятно, я тоже прогуливаю))
О таких уроках и преподавателе можно только мечтать. Спасибо
Можно я буду ходить на ваши лекции вместо большинства лентяев))
Поступай в этот вуз
Это физтех, там лентяи на долго не задерживаются
@@МихаилРатай-ш3с 😁
Нельзя.
Спасибо, Тимофей Фёдорович!
Присоединяюсь к финальным аплодисментам))
Спасибо.
Наконец-то долгожданные лекций перед сном и в автобусе)ВАШИ ЛЕКЦИЙ ПОМОГАЮ РАЗВИВАТЬСЯ И СТАНОВИТСЯ ЛУЧШЕ
Вы лучший лектор) спасибо Вам
Благодарю за лекции
Опять не спать :)) Тимофей Фёдорович, доброй ночи!
Печально ( нижние строчки не видно (((
Спасибо автору. Если бы мне о tenzorflow или keras так же кто-то рассказал
Лучший преподаватель!
Вы, конечно, во время))) Но, в любом случае, спасибо)))
Смотрю количество просмотров и камментов под каждой лекцией цикла и вижу, что модели поведения студентов и ютуберов схожи. Что неудивительно, но интересно...
Велик, Тимофей и творенья его -Велики...
Спасибо
Офигенный препод
Ахуительный препод.
"Когда я структурным программированием занимался при вас, показывал там"... )))
Спасибо, +- питон понял
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
@@nobeing6242 откуда TranslateError то?
Если вы про названия, то можно и кириллицей писать(нельзя, но можно) :D
#include
using namespace::all_Lect
all_Lect allLEct_of_Khirianov;
main()
{
setlocale(LC_ALL , "RUS");
unsigned int RES = allLEct_of_Khirianov.thisLect.NEW_L(student::good_STUD);
int DEL = allLEct_of_Khirianov.thisLect.NEW_L(student::the_MostBAD_STUD);
//------------------------------------
allLEct_of_Khirianov.nextSEMESTR(RES);
allLEct_of_Khirianov.delete_BAD-STUD(DEL);
//------------------------------------
return 0;
};
"Ну вы это отпразднуете торжественным ботом в общежитии..."
Супер. СПАСИБО!
я ваши лекции своему генеральному директору показал.
В Ютюбе невозможно натыкать видео даже с подписками чтобы они стали удовлетворять требованиям обладателя аккаунта причём большинство неподходящего видео из низшего порядка , и получается что те кто управляет массами не заинтересованы в развитии и стремлению к идеалу .
Подскажите import где ищет модули? В локальной папке или во вложенных тоже? И например если рядом две папки с разными проектами но файлы(модули) с одинаковыми именами какой подключиться? Разъяснит кто знает пожалуйста? Или сылку где это доступно разъяснено.
Какой дистрибутив линукса стоит у Тимофея?
Ура!
а что за значок золотистый у Вас?
предположу, что значок выпускника МФТИ
на обработчики js похожи ивенты тут.
"Лекционная аудитория не пустя с парочкой ботанов" ,,😀😀😀
Тимофей, вопрос ни по лекции ... Зачем клавиатуру к ноутбуку подключили если на ноутбуке есть клавиатура? Задавался вопросом об эффективности работы на ноутбучной и обычной клавиатуре ..
Кому как удобнее
Он говорил, что печатает в слепую. Но невозможно печатать в слепую, если клавы меняются ПК-десктопная на ноутбууную.
Студент: "А вот как бы удалить последний элемент списка?"
Тимофей Фёдорович: "Да всё просто! Надо его пОпнуть."
А какие горячие клавиши, чтоб сделать доску по ширине экрана моего монитора?
А зачем в 50:20 делать bar(2,2) == 4, если можно сделать bar(2,2) != 4 и не писать else. И мы говорим если bar() не равен должной сумме, то пусть вылезет ошибка, а иначе не произойдет ничего и программа продолжит работать.(не нужен положительный ответ)
Всё так. Но для понимания проще позитивные условия.
Тимофей, очень бы хотелось, чтобы не только Васи, Пети и Коли были примерами тех, кто что-то делает, но также Маши, Тани и Лены. В остальном - все превосходно.
Было бы очень неплохо, если бы этот курс лекций был в 20 минутном сжатом варианте для тех, кто вкуривает с первого быстрого раза :) Потому как эти лекции рассчитаны на массы и то, что можно объяснить за 20 сек, объясняется за 20-30 минут. Устал смотреть... И да, маэстро, "что-то серьезное" можно написать за 2 недели в одиночку! 15 лет практики дают такие возможности.
Смотрю лекции на скорости 2х, это уже 30-40 минут. Вполне комфортно смотрится.
Спасибо