Как работает функция 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
#Germany
🦇 A €200 million railway section in Germany is stalled because of bats
In Baden-Württemberg, residents of the Calw district are waiting for train traffic to resume on a railway section and tunnel whose repair took decades and cost over €200 million. But there is one insurmountable obstacle — more than 1,000 bats living in the tunnel between Calw and Weil der Stadt stations.
These animals are under strict protection, so they cannot be removed. An unusual solution was found — to build a protective concrete wall inside the tunnel. On one side, trains will run; on the other, the bats can sleep undisturbed.
This will require 300 concrete blocks and about €80 million. Additionally, ultrasonic sensors will be installed to help the bats navigate their new shelter. However, it is still unknown how quickly they will adapt to the new structure, and this will determine when the tunnel can reopen.
⚠️ This is not an isolated case: in Kiel, 900 bats prevented the demolition of an old swimming pool because the animals refused to move to new shelters.
🦇 Sometimes even very small creatures can have a big impact on massive infrastructure projects!
☘️Read the latest environmental news on the @ekologuz page. Follow us and send your suggestions and wishes via @eklguz_bot
Instagram | Facebook | Twitter | Sayt | Youtube.
🇩🇪#Germany: Men in Germany aged 17 to 45 are required to obtain approval from the Bundeswehr (German armed forces) career center before leaving the country for more than three months, whether for study, work, or travel.
The provision was included in a broader military reform package approved in December, but went largely unnoticed until it was reported by the German outlet Frankfurter Rundschau. The measure received little public attention at the time and was not widely discussed.
Despite the law being in place, it remains unclear how this requirement will be implemented in practice, particularly for individuals who were unaware of it or who have already left the country.
"We cannot remain silent. No-one can remain silent when there is an ongoing genocide and when people are denied the most basic human needs ... To stand with Palestine is to be human."
Greta Thunberg calls out Israel's genocide during a speech in Leipzig, #Germany.
https://t.me/YediotNewsChat
Heidelberg, #Germany🇩🇪
Heidelberg was not affected by the bombing of the Second World War, so it was preserved in its original medieval form - a castle, numerous churches and abbey, ancient streets.
Nuremberg, #Germany🇩🇪
Every year in Nuremberg, the largest Christmas fair is held throughout Europe.
Nuremberg is the city of inventors. It was he who gave the world things such as pocket watches, a globe, a compass, a pelting and a current machine.
🇩🇪#Germany: A knife attack took place during an anti-Iranian regime protest in Hamburg.
A man went on a stabbing spree targeting protesters, reportedly deliberately targeting anti-regime demonstrators. He managed to stab two protesters. One victim is in serious condition in hospital, while the second received medical aid at the scene after being stabbed in the leg.
(via @froopashee2)
Repost via @ben_ditto on IG
🇩🇪#Germany: Cockroach swarm agents 🪳
Swarm Biotactics, a deep tech start-up based in Kassel, Germany, specialising in “bio-robotics”: putting miniature sensor backpacks on cockroaches and then sending these as swarms into environments inaccessible for conventional robots, drones, or humans such as collapsed structures following natural disasters, GPS-denied areas, or contested warfare zones. The swarm of roaches act as real-time data agents 🪳 The company has received €13 million in funding so far from a consortium of international investors, including Vertex Ventures US, Possible Ventures, and Capnamic 🪳
Footage of cockroaches taken from 60 Minutes on CBS.