Как работает функция 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
2019 Chinese University of Hong Kong (CUHK) Siege Timeline:
- Nov 11-12: Police initiate action by entering CUHK campus, sparking clashes.
- Nov 12: Police deploy tear gas, rubber bullets, and bean bag rounds; clashes last for hours, with dozens injured.
- Nov 12 (Evening): University president Rocky Tuan mediates; police agree to withdraw, but tensions persist.
- Nov 13: Aftermath continues as campus calms, becoming a symbol of the protests.
- Police Brutality Details: According to Amnesty International and Human Rights Watch reports, police used excessive force, including close-range rubber bullet shots causing eye injuries, beatings of detainees, and indiscriminate tear gas affecting students and non-protesters.
#HongKongProtests#2019HongKong
Timeline of Chow Tsz-lok's Death:
- Nov 3, 2019 (Evening): Protests in Tseung Kwan O escalate; police deploy tear gas.
- Nov 4, 2019 (Around 1 AM): Chow falls from 3rd floor of Sheung Tak Estate car park, suffers severe injuries; reports claim police were present at the parking lot at the time.
- Car park fence is 1.3m tall, making accidental fall unlikely for an adult, raising suspicions.
- Chow had severe head injuries but no other broken bones; critics claim this proves he was unconscious before the fall.
- Nov 4, 2019: Ambulance delayed due to roadblocks, with reports claiming police cars blocked the way; Chow admitted to hospital in coma.
- Nov 8, 2019 (Morning): Chow pronounced dead at age 22 from cardiac arrest.
- Jan 2021: Coroner's inquest did not rule accidental death, but exact cause of fall undetermined; critics allege the judge misled the jury multiple times that it was an accident.
- A tragic symbol of Hong Kong's 2019 protests—remembering the call for justice.
#ChowTszLok#HongKongProtests
Legal expert Johannes Chan Man-mun explains the permanent nature of the "interim" injunction in Hong Kong's protest case, with no avenue for appeal to the Court of Final Appeal. Chan criticizes the court's decision to deny intervention, highlighting the challenges in challenging the ban. He emphasizes the undermining of human rights and suggests legislative action instead of relying on court injunctions. Human rights concerns persist in Hong Kong. #HongKongProtests#LegalRuling#HumanRights