Практика программирования на Python 3, лекция №6

preview_player
Показать описание

Рекомендации по теме
Комментарии
Автор

0:00 Приветствие
3:00 Несколько слов о процессах в программировании, об организации этих процессов, о интерфейсах
-> 4:19 Этапы проекта
-> 5:19 О проработке интерфейса (взаимодействие частей проекта, структурных единиц)
6:39 Средства декомпозиции
9:19 Почему модули
-> 19:30 Про import (кратко, подробнее 35:20)
23:05 Подкаталоги. Пакеты
24:47 Про зависимость/независимость модулей друг от друга
-> 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 Про глобальные переменные для использовании в функциях

NeoSkywalker
Автор

Я в восторге, такого изложения материала не встречал.
Лектор которого как гуру надо слушать, впитывать каждое слово.
Повезло ученикам данного вуза, что могут получить такой объем очень ценной информации.
Тимофей Хирьянов, спасибо Вам за ваши труды.

Barmaley_YT
Автор

Тимофей Федорович, Вы - лучший лектор, из всех которых мне посчастливилось слушать!

mihakgma
Автор

Обалдеть, такие лекции ещё кто-то прогуливает?!

СергейПресняков-ор
Автор

Тайм-коды: Модули
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 # модификатор, делающий изнутри функции переменную глобальной

iritaka
Автор

Тимофей Фёдорович, спасибо огромное за материалы и за их качество изложения!

vot_eto_Canada
Автор

О таких уроках и преподавателе можно только мечтать. Спасибо

VladArnoldner
Автор

Можно я буду ходить на ваши лекции вместо большинства лентяев))

OmgFiny
Автор

Наконец-то долгожданные лекций перед сном и в автобусе)ВАШИ ЛЕКЦИЙ ПОМОГАЮ РАЗВИВАТЬСЯ И СТАНОВИТСЯ ЛУЧШЕ

QwertyQwerty-enfb
Автор

Присоединяюсь к финальным аплодисментам))
Спасибо.

dutarSafin
Автор

Опять не спать :)) Тимофей Фёдорович, доброй ночи!

zenovsergey
Автор

Печально ( нижние строчки не видно (((

АлександрПетрушин-ъф
Автор

Спасибо автору. Если бы мне о tenzorflow или keras так же кто-то рассказал

aeees
Автор

Велик, Тимофей и творенья его -Велики...

ВячеславЕвтеев-бч
Автор

Вы, конечно, во время))) Но, в любом случае, спасибо)))

alexeygumenyuk
Автор

Смотрю количество просмотров и камментов под каждой лекцией цикла и вижу, что модели поведения студентов и ютуберов схожи. Что неудивительно, но интересно...

vitalii_kalinichenko
Автор

"Когда я структурным программированием занимался при вас, показывал там"... )))

Иван-ыоэ
Автор

from youtube import tkhirianov
from russia import все_учебные_заведения_страны

def main():
for x in tkhirianov.все_лекции():
мечта(x)

def мечта(текущая_лекция):
for x in
x.append(текущая_лекция)


if __name__ == "__main__":
main()

vitalmurashev
Автор

Подскажите import где ищет модули? В локальной папке или во вложенных тоже? И например если рядом две папки с разными проектами но файлы(модули) с одинаковыми именами какой подключиться? Разъяснит кто знает пожалуйста? Или сылку где это доступно разъяснено.

Magnitikus
Автор

"Ну вы это отпразднуете торжественным ботом в общежитии..."

stepan-klyukin