Как работает функция reload()?
Эта функция нужна для того, чтобы перезагрузить изменившийся код из py-файла без рестарта интерпретатора.
Дело в том, что любой импортированный модуль при повторном импорте не будет перечитывать файл. Функция импорта вернёт уже загруженный в память объект модуля. Чтобы обновить код, нужно либо перезапустить всю программу, либо использовать функцию reload()
from importlib import reload
reload(my_module)
🔸 Функция reload() принимает в качестве аргумента только объект модуля или пакета. Она не может перезагрузить класс или функцию. Только весь файл целиком!
🔸 Перезагрузка пакета перезагрузит только его файл __init__.py, если он есть. Но не вложенные модули.
🔸Она не может перезагрузить ранее не импортированный модуль.
🔸При вызове функция reload() перечитывает и перекомпилирует код в файле, создавая новые объекты. После создания новых объектов перезаписывается ранее созданный неймспейс этого модуля.
Это значит, что если где-то этот модуль импортирован через import и обращение к атрибутам происходит через неймспейс (имя) модуля, то такие атрибуты обновятся.
Если какие-либо объекты из этого модуля импортированы через from то они будут ссылаться на старые объекты.
Напишем простой модуль
# mymodule.py
x = 1
Теперь импортируем модуль и отдельно переменную х из модуля
>>> import mymodule
>>> from mymodule import x
>>> print(mymodule.x)
1
>>> print(x)
1
Не перезапуская интерпретатор вносим изменения в модуль
# mymodule.py
x = 2
Делаем перезагрузку модуля и проверяем х ещё раз
>>> reload(mymodule)
>>> print(mymodule.x)
2
>>> print(x)
1
То же самое будет если присвоить любой объект переменной (даже словарь или список)
Повторный импорт обновляет значение
>>> from mymodule import x
>>> print(x)
2
🔸Созданные инстансы классов не обновятся после перезагрузки модуля. Их придётся пересоздать.
#tricks#basic
🇬🇧 С Днем Рождения, Сэр Майкл Кейн! 🎬
Not many people know this, но сегодня мы празднуем день рождения одного из самых культовых британских актеров! Сэру Майклу Кейну, мастеру кокни-акцента, научившему мир говорить с британским акцентом кокни и сделавшему 👓 очки невероятно стильными, сегодня исполняется 92 года.
От скромного начала в Восточном Лондоне до мировой славы, путь Кейна показывает, как талант преодолевает границы. Его характерный голос, акцент и незабываемые роли объединяют 👀 зрителей по всему миру вот уже более 60 лет.
Кейн, при рождении Морис Джозеф Миклвайт, снимался в самых разных 🎞 фильмах: от «Ограбление по-итальянски», «Элфи», «Убрать Картера» и «Ханна и ее сестры» до современных шедевров, таких как трилогия Криса Нолана о Бэтмене.
Все помнят Кейна в амплуа дворецкого Альфреда Пенниуорта — настоящего 🎩 англичанина и воспитателя Брюса Уэйна. Но во всех этих разных ранее упомянутых фильмах очевидно одно — подлинность и обаяние актера.
Какой фильм с Майклом Кейном ваш любимый? Напишите в комментариях❕#MichaelCaine#Cinema#Cockney
— У тебя усталый вид, Альфред. Ты без меня здесь справишься?
— Только скажите мне, как будет по-русски «сама мажься своим лосьоном».
#ВИДЕОТЕКА
#TheDarkKnight
#ТемныйРыцарь
#ChristianBale
#КристианБэйл
#MichaelCaine
#МайклКейн
«Вы посмотрите, доктор, он так счастлив, что даже плачет!»
😅
Если вы вдруг не знаете, что посмотреть вечером с участием сегодняшнего юбиляра, то советую без колебаний включить великую комедию Фрэнка Оза «Отпетые мошенники».
Искромётный, филигранно поставленный и сыгранный фильм, который с годами становится только смешнее. Даже несмотря на то, что это ремейк картины 1964 года «Сказки на ночь» с Марлоном Брандо, Дэвидом Нивеном и Ширли Джонс.
Но здесь именно тот самый случай про исключение из правил. Картина начисто затмила оригинал. Как бы пафосно это ни звучало, но «Отпетые мошенники» — действительно одна из самых смешных комедий, что вы когда-либо видели.
И лучше всего смотреть это кино в блестящем переводе Алексея Михалева. Все эти фразочки и даже интонации навсегда отпечатаются у вас в памяти.
#ВИДЕОТЕКА
#DirtyRottenScoundrels
#ОтпетыеМошенники
#SteveMartin
#СтивМартин
#MichaelCaine
#МайклКейн
#GlennHeadly
#ГленнХедли
#АлексейМихалев
«Считается, что я всегда играю самого себя. Господи боже! Я бы сыграл себя, если бы знал, кто это такой. Сыграл бы с полной выкладкой! Но никогда ведь не знаешь, кто ты на самом деле».
Сэру Майклу Кейну сегодня исполнилось 93 года.
#ВИДЕОТЕКА
#MichaelCaine
#МайклКейн
#TheIpcressFile
#ДосьеИпкресс
#TheItalianJob
#ИтальянскаяРабота
#Sleuth
#Сыщик
#HannahAndHerSisters
#ХаннаИЕеСестры
#DirtyRottenScoundrels
#ОтпетыеМошенники
#OnDeadlyGround
#ВЗонеСмертельнойОпасности
#MissCongeniality
#МиссКонгениальность
#ChildrenOfMen
#ДитяЧеловеческое
#TheDarkKnight
#ТемныйРыцарь
#TheGreatEscaper
#ВеликийБеглец