Как работает функция 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
🚨 Just had an intriguing discovery at the Blokhin Institute in Moscow, Russia.
While waiting for my doctor's appointment, I decided to explore the institute's museum. Among the exhibits, I stumbled upon a personal letter and invitation from Edward Kennedy to one of the institute's doctors. This was during the Cold War era, which makes this find even more fascinating.
It seems that even amidst political tensions, there was recognition of the significant contributions Russia has made to arts and sciences. This glimpse into history reminds us of the importance of collaboration in fields like medicine, where advancements benefit everyone, regardless of borders.
#BlokhinInstitute#ColdWarHistory#MedicalResearch#InternationalCollaboration#RussianAchievements
Tessera Therapeutics Secures $50M
Tessera Therapeutics has raised $50 million in funding on December 18, 2024. The early-stage life sciences company is at the forefront of Gene Writing™, a cutting-edge biotechnology aimed at transforming medicine and scientific research. More details available on their official website: Tessera Therapeutics
#TesseraTherapeutics#Funding#LifeSciences#Biotechnology#GeneWriting#Healthcare#MedicalResearch
$140M Funding for Ottimo Pharma
Ottimo Pharma announces a funding round of $140 million set for December 19, 2024. The company focuses on developing bi-functional medicines aimed at improving the lives of individuals living with cancer.
Learn more
#Funding#OttimoPharma#Cancer#BiFunctionalMedicines#Healthcare#Pharmaceuticals#LifeSciences#Investments#MedicalResearch#Oncology#HealthTech#Biotechnology
PeproMene Bio Secures $11M Round
PeproMene Bio, Inc., a clinical-stage biotech firm based in Irvine, CA, has successfully raised $11 million in funding. The investment round closed on December 18, 2024, focusing on innovative therapies targeting cancers and immune disorders.
More info: PeproMene Bio
#Biotech#Funding#Cancer#ImmuneDisorders#California#ClinicalStage#Therapies#Investment#Healthcare#Innovation#PeproMeneBio#Pharmaceuticals#MedicalResearch#DrugDevelopment
$60M Funding for Psioxus
Psioxus Therapeutics has successfully secured $60M in funding as part of its latest round, scheduled for December 17, 2024. This funding aims to advance its innovative tumor gene therapy platform focused on improving cancer treatment outcomes.
#Funding#Cancer#Biotech#Oncology#GeneTherapy#Therapeutics#ClinicalStage#Investment#Healthcare#Psioxus#AkamisBio#Tumor#LifeScience#MedicalResearch#Therapy#Innovative#Impact#Technology#Platform