Как работает функция 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
Joined a growing AMG family 🚘AMG GT63 Pro 4Matic revealed
AMG has already released details about the forthcoming 805-hp plug-in hybrid GT63 SE that will sit at the top of the range in terms of both price and performance.
Now here’s another new version, the turned-up and track-focused AMG GT Pro which has been unveiled at the Goodwood Festival of Speed in the U.K.
Individual changes over the existing GT63 are small, but the cumulative result is claimed to be a significant improvement in performance when the car is driven on a circuit.
The second-generation AMG GT's 4.0-liter V-8 makes peaks of 603 horsepower and 627 pound-feet of torque (850.1 N·m).
Enhanced cooling and aerodynamics are the main changes to the car, which also gets standard carbon-ceramic brakes and optional track-biased Cup R tires at no extra cost.
According to AMG boss Michael Schiebe, the Pro is well suited to track use but without becoming harsh on-road, "to maintain a high level of day-to-day usability for a car of this type."
Deliveries (including pricing) of this 2025 model are expected to start early next year.
@CarsNews
#Mersedes#AMG#sportscar#hybrid
🚘 GT63 Pro 4Matic присоединился к растущему семейству AMG
AMG уже публиковала подробную информацию о готовящемся к выпуску 805-сильном гибридном GT63 SE с подключаемым модулем, который будет лидировать в линейке как по цене, так и по производительности.
А вот ещё одна новая версия, усовершенствованная и ориентированную на трековые трассы AMG GT Pro, которая была представлена на фестивале скорости в Гудвуде в Великобритании.
Отдельные изменения по сравнению с существующим GT63 незначительны, но в целом заявляется, что в результате значительно улучшаются характеристики при движении автомобиля по трассе.
4,0-литровый V-8 AMG GT второго поколения развивает максимальную мощность в 603 лошадиные силы и крутящий момент в 850.1 Нм.
Улучшенное охлаждение и аэродинамика – вот основные изменения в автомобиле, который также получил стандартные карбон-керамические тормоза и опциональные шины Cup R без доплаты.
По словам босса AMG Михаэля Шибе, Pro хорошо подходит для использования на треках, но при этом не становится слишком жестким на дороге, "чтобы поддерживать высокий уровень повседневного использования автомобиля такого типа".
Ожидается, что поставки этой модели 2025 года начнутся в начале следующего года. Тогда же станет известна цена.
@avtoNovosti
#Mersedes#AMG#спорткар#гибрид