Как работает функция 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
L’Alto commissariato dell'ONU per i diritti umani ha inviato mercoledì 1 marzo allo Stato italiano la richiesta di applicazione di misure temporanee cautelative relative alla detenzione al 41bis di Alfredo #Cospito: "Rispetto dei diritti civili e politici"…
L’Alto commissariato dell'ONU per i diritti umani ha inviato mercoledì 1 marzo allo Stato italiano la richiesta di applicazione di misure temporanee cautelative relative alla detenzione al 41bis di Alfredo #Cospito: "Rispetto dei diritti civili e politici"
@UltimoraPolitics
Manifesti e scritte choc a La Sapienza contro lo Stato e le istituzioni. Mattarella, Melillo, Nordio, Cartabia e Meloni nel mirino degli studenti: "Chi sono gli assassini di Alfredo #Cospito?"
@UltimoraPolitics
#ULTIMORA
Alfredo #Cospito ha ribadito al medico che lo ha visitato subito dopo il suo ingresso nel carcere milanese di Opera: "Continuo lo sciopero della fame"
🗞️@ultimora24
❗️ Giorgia #Meloni: "Alfredo #Cospito nel 1991, già in carcere, decise di fare lo sciopero della fame e venne graziato. È uscito ed è andato a sparare a della gente. Non stiamo parlando esattamente di una vittima" @UltimoraPolitics
❗️ Giorgia #Meloni: "Alfredo #Cospito nel 1991, già in carcere, decise di fare lo sciopero della fame e venne graziato. È uscito ed è andato a sparare a della gente. Non stiamo parlando esattamente di una vittima"
@UltimoraPolitics
Caso #Cospito, Giorgia #Meloni: "Vorrei fosse chiaro che la sfida non è al governo, la sfida è allo Stato: è un tema che ci riguarda tutti" @UltimoraPolitics
Caso #Cospito, Giorgia #Meloni: "Vorrei fosse chiaro che la sfida non è al governo, la sfida è allo Stato: è un tema che ci riguarda tutti"
@UltimoraPolitics
Adnkronos - Caso #Cospito, Giorgia #Meloni si rivolge ai parlamentari #FdI via chat: "Opposizione alimenta polemica, vi invito a non partecipare"
@UltimoraPolitics
Carlo #Nordio: "#Cospito non soffre di una patologia cronica invalidante ma è un soggetto sano e lucido che si sta volontariamente procurando uno stato di salute precario per finalità ideologiche. La dimostrazione la si trae da una frase da lui pronunciata: 'Il corpo è la mia arma'"
@UltimoraPolitics
I documenti sulle intercettazioni dei dialoghi tra #Cospito e i tre boss in 41bis con cui è tenuto a passare le 4 ore di socialità ogni giorno sarebbero stati richiesti con urgenza da #Nordio e inviati con posta ordinaria. Ma i documenti classificati come “non divulgabile” non possono viaggiare con posta ordinaria, quindi sono stati bollati come “divulgazione limitata”. Il plico conterrebbe l’etichetta “riservato” in testa e in calce alle pagine iniziali, ma con una nota di trasmissione che riporta a “divulgazione limitata”. (Rep)
@UltimoraPolitics
Caso #Cospito, rinviato a giudizio il Sottosegretario alla Giustizia Andrea #Delmastro Delle Vedove. Dovrà rispondere dell'accusa di rivelazione del segreto d'ufficio
@UltimoraPolitics