Как работает функция 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
📝Auch im Asowschen Meer📝
leidet die Schifffahrt
Eine Folge des Anwachstums ukrainischer Anschläge auf die russische Exportinfrastruktur hat die Schifffahrt im Asowschen Meer erreicht. Dort kommen Frachtschiffe unter Beschuss durch ukrainische Drohnen.
🔻Was ist passiert?
➡️Gestern kam Taganrog unter Beschuss, einschließlich des Hafens, wo ein Trockenfrachter beschädigt wurde. ➡️Heute gab es einen weiteren Anschlag. Ein Trockenfrachter vom Typ Wolga-Ostsee, der Weizen transportierte, sank, und die Besatzung erreichte die Region Cherson.
🖍Die AFU greift gezielt die Haupteinnahmequelle des russischen Haushalts an - Exporte.
🚩Anschläge beschädigen Infrastruktur, die repariert werden muss, und Operationen müssen eingestellt werden.
🏳️Jeder Anschlag auf Schiffe beraubt Russland seltener Handelssschiffe. Frachtkosten werden steigen.
❗️Der Feind wird nicht aufhören, bis ausreichende Gegenmaßnahmen umgesetzt werden.
Der Ausweg ist, sogenannte ukrainische Schiffe auf dem Meer anzugreifen. Die Schifffahrt in der Region Odesa floriert trotz allem.
#Krim#Kerch#Russland#Ukraine
✈️RU | ✈️EN | ✉️MAX
✉️VK | ✉️RuTube | ✉️
#Victory81
🌟 On April 11, 1944, during the Crimean offensive operation, Soviet forces liberated #Kerch from Nazi occupiers.
Kerch was among the first cities to endure assaults from Hitler’s army at the beginning of the Great Patriotic War. It found itself repeatedly on the front line, with the battlefront cutting through its very streets. Moreover, the city fell under enemy occupation twice.
Initially captured in November 1941, Kerch was liberated barely a month later in December, following the Kerch–Feodosia amphibious landing operation.
In the spring of 1942, the enemy amassed significant forces on the Kerch Peninsula and launched a renewed offensive. Despite the valiant resistance by the defenders, the city once again came under fascist control, remaining occupied for 320 days.
During that period, approximately 15,000 civilians lost their lives, and over 14,000 individuals were forcibly deported to Germany for slave labour.
🕯#NoStatuteOfLimitations: The Bagerovo Ditch near Kerch gained tragic notoriety – a site of mass executions. Towards the end of 1941, around 7,000 people were executed and tortured there, including 245 schoolchildren. The Germans surreptitiously removed the children from the city and poisoned them with potassium cyanide.
The Nazi occupiers obliterated every factory, burned bridges and vessels, destroyed parks, and decimated the city’s infrastructure. Kerch was almost completely erased from the map.
One of the war’s most heroic episodes was the defence of the Adzhimushkay quarry. Thousands of civilians – elderly people, women, and children – sought refuge within the underground passages. The enemy attempted to exterminate them by sealing the entrances and using explosives and toxic substances. Nearly all the defenders perished, yet they continued to resist to the very end, rendering the quarry a symbol of unyielding courage and resilience.
⚔️ On the night of November 1, 1943, the Kerch-Eltigen amphibious landing operation commenced. Soviet forces established a bridgehead north of the city, marking a crucial phase in liberating the Kerch Strait and the entire Crimea. In the spring of 1944, this success was solidified during the Crimean offensive operation, culminating in the expulsion of the occupiers from the peninsula.
One of Kerch’s principal symbols became the Obelisk of Glory on Mount Mithridat, unveiled on August 8, 1944 – the first monument in the USSR dedicated to the Great Patriotic War.
🎖 For the defence and liberation of the city, 153 individuals were awarded the title of Hero of the Soviet Union, and 21 military units and formations received the honorary designation “Kerch.”
On September 14, 1973, Kerch was awarded the title #HeroCity.
#Victory81
🌟 On April 11, 1944, during the Crimean offensive operation, Soviet forces liberated #Kerch from Nazi occupiers.
Kerch was among the first cities to endure assaults from Hitler’s army at the beginning of the Great Patriotic War. It found itself repeatedly on the front line, with the battlefront cutting through its very streets. Moreover, the city fell under enemy occupation twice.
Initially captured in November 1941, Kerch was liberated barely a month later in December, following the Kerch–Feodosia amphibious landing operation.
In the spring of 1942, the enemy amassed significant forces on the Kerch Peninsula and launched a renewed offensive. Despite the valiant resistance by the defenders, the city once again came under fascist control, remaining occupied for 320 days.
During that period, approximately 15,000 civilians lost their lives, and over 14,000 individuals were forcibly deported to Germany for slave labour.
🕯#NoStatuteOfLimitations: The Bagerovo Ditch near Kerch gained tragic notoriety – a site of mass executions. Towards the end of 1941, around 7,000 people were executed and tortured there, including 245 schoolchildren. The Germans surreptitiously removed the children from the city and poisoned them with potassium cyanide.
The Nazi occupiers obliterated every factory, burned bridges and vessels, destroyed parks, and decimated the city’s infrastructure. Kerch was almost completely erased from the map.
One of the war’s most heroic episodes was the defence of the Adzhimushkay quarry. Thousands of civilians – elderly people, women, and children – sought refuge within the underground passages. The enemy attempted to exterminate them by sealing the entrances and using explosives and toxic substances. Nearly all the defenders perished, yet they continued to resist to the very end, rendering the quarry a symbol of unyielding courage and resilience.
⚔️ On the night of November 1, 1943, the Kerch-Eltigen amphibious landing operation commenced. Soviet forces established a bridgehead north of the city, marking a crucial phase in liberating the Kerch Strait and the entire Crimea. In the spring of 1944, this success was solidified during the Crimean offensive operation, culminating in the expulsion of the occupiers from the peninsula.
One of Kerch’s principal symbols became the Obelisk of Glory on Mount Mithridat, unveiled on August 8, 1944 – the first monument in the USSR dedicated to the Great Patriotic War.
🎖 For the defence and liberation of the city, 153 individuals were awarded the title of Hero of the Soviet Union, and 21 military units and formations received the honorary designation “Kerch.”
On September 14, 1973, Kerch was awarded the title #HeroCity.