Как работает функция 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
❗️Il capogruppo di #FI Paolo #Barelli: "Forza Italia ha già un generale, Berlusconi. Se Renzi vuole venire a fare il caporale in mezzo ai nostri tanti capaci dirigenti, siamo aperti a discutere. È simpatico e bravo, se vuole venire a dare un contributo a Forza Italia, noi di sergenti e soldati militanti ne abbiamo bisogno."
@UltimoraPolitics
#Italia
Il Fatto Quotidiano - L’ex capogruppo di #FI|EPP alla Camera, Paolo #Barelli, verrà nominato Viceministro per i Rapporti con il Parlamento. L'ufficialità nelle prossime ore.
@Osservatorioitaliano
#Italia#Camera
Paolo #Barelli (#FI|EPP): "Forza Italia non è dell'intenzione di dover sostenere a ogni costo una maggioranza che non è coesa nel sostengno a Draghi."
@UltimoraPolitics24
#Italia
SkyTg24 — Marina #Berlusconi starebbe valutando di chiedere altre dimissioni nella leadership di #FI|EPP. Il più a rischio sarebbe il capogruppo alla Camera Paolo #Barelli
@Osservatorioitaliano
Via libera del Consiglio dei ministri al decreto ad hoc con il nuovo intervento sul #Superbonus. Paolo #Barelli (#FI): "Continuerà ad esistere il bonus al 70% per tutti coloro che proseguiranno i lavori nel 2024 ed è prevista una sanatoria che permetterà di evitare la restituzione delle somme per coloro che non hanno completato i lavori entro il 31/12. Il bonus edilizio al 110% resta comunque per coloro che hanno reddito basso e non hanno completato i lavori"
@UltimoraPolitics
#Italia
❗️Il Segretario di #FI|PPE Antonio #Tajani minaccia l'addio dal partito se dovesse cambiare anche il Capogruppo alla #Camera Paolo #Barelli (FI).
@Osservatorioitaliano
#Italia
Il Capogruppo alla Camera di #FI|EPP, Paolo #Barelli, ha avuto due colloqui telefonici: con l'uscente Capogruppo dei senatori azzurri, Maurizio #Gasparri, e con la neo eletta alla guida del Gruppo Parlamentare al Senato, Stefania #Craxi. Al primo, si legge in una nota, ha espresso un affettuoso ringraziamento per il lavoro fin qui svolto con professionalità, passione e generosità. A Craxi ha augurato buon lavoro garantendo ogni collaborazione, certo che l'esperienza acquisita nei precedenti importanti ruoli sarà foriera di successo.
@Osservatorioitaliano
#Basilicata2024 — Paolo #Barelli, capogruppo Camera #FI, conferma che il governatore uscente Vito #Bardi sarà il candidato della coalizione di centrodestra alle prossime elezioni regionali.
@UltimoraPolitics