Как работает функция 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
La #Germania boccia la proposta di bilancio UE: “Finanziariamente sproporzionata”. Il ministro Klingbeil critica la tassa sulle grandi imprese e il prelievo sul tabacco: “Segnale sbagliato, Berlino non può sostenerla”.
@UltimoraPolitics
🇩🇪#Germania EXIT POLL — Alternative für Deutschland domina le elezioni statali in due land della Germania Est: vince col 33% in Turingia ed è testa a testa con la CDU col 31,5 in Sassonia.
@UltimoraPolitics
❗️🇩🇪 #Germania, dal 1° aprile la cannabis diventa ufficialmente legale per uso ricreativo. Ok dal Parlamento: 407 a favore, 226 i contrari, 4 gli astenuti @UltimoraPolitics
❗️🇩🇪#Germania, dal 1° aprile la cannabis diventa ufficialmente legale per uso ricreativo. Ok dal Parlamento: 407 a favore, 226 i contrari, 4 gli astenuti
@UltimoraPolitics
Tensione Roma-Berlino sui migranti, fonti Palazzo Chigi: "Grande stupore per la notizia secondo la quale un portavoce del ministero degli Esteri della repubblica federale di #Germania avrebbe annunciato un imminente finanziamento a delle Ong per un progetto di assistenza di migranti sul territorio italiano e un progetto di "salvataggi" in mare. Si confida che la notizia sia priva di ogni fondamento perché il finanziamento da parte della Germania di attività di Ong sul territorio italiano sarebbe una gravissima anomalia"
@UltimoraPolitics
#Germania
Il Bundestag approva il progetto di legge sull'introduzione del reddito di cittadinanza: sostituirà da gennaio 2023 l'Hartz IV e avrà come obiettivo non più trovare un impiego per i disoccupati il più rapidamente possibile, ma formarli a un lavoro a tempo indeterminato. Il sussidio di disoccupazione verrà aumentato da 449 a 502 euro al mese. Le prestazioni dovrebbero essere ridotte nei primi sei mesi dalla ricezione del reddito di cittadinanza soltanto in casi eccezionali, qualora il disoccupato non collabori con costanza con i centri per l'impiego nella ricerca di un lavoro. Oltre al reddito di cittadinanza, previsti 150 euro al mese per la formazione continua per chi ottiene una qualifica professionale o 75 euro per chi intraprende altre misure in questo campo
@UltimoraPolitics
🇩🇪#Germania – Un alto funzionario del Ministero degli Esteri tedesco, con competenza per il Medio Oriente, parteciperà come osservatore alla riunione del Board of Peace del presidente Donald #Trump, riferiscono fonti del governo
@UltimoraPolitics24
#Germania, #Iran: la Germania non parteciperà attivamente alle azioni militari contro l'Iran ma difenderà i propri soldati presenti in Giordania e in Iraq se verrannoa attaccati. Lo ha fatto sapere il Ministro degli Esteri Johann Wadephul questa mattina.
Alcune basi militari in cui i soldati tedeschi sono presenti sono state prese di mira dall'Iran in questi giorni. Fino a questo momento non si segnalano feriti.