Как работает функция 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
🚘 Cybercab announced: Elon Musk’s robotaxi is finally here
📍 Tesla boss Elon Musk has unveiled the firm's long-awaited robotaxi, the Cybercab, at the Warner Bros Studios in Burbank, California.
🚕 The robotaxi is a purpose-built autonomous vehicle, lacking a steering wheel or pedals, meaning it will need approval from regulators before going into production. The design was futuristic, with doors that open upward like butterfly wings and a small cabin with only enough space for two passengers. There was no steering wheel or pedals, nor was there a plug — Musk said the vehicle charges inductively to regain power wirelessly.
🚐 In a surprise, the company also revealed a "robovan," a self-driving van capable of carrying up to 20 passengers or being configured for cargo purposes.
🪙 Musk said that autonomous cars are expected to be 10–20 times safer than human-driven vehicles and could cost as little as 20 cents per mile, compared to the $1 per mile for city buses.
@CarsNews
#Tesla#driverless
New 🚘 electric cars will get Chinese autopilot
It will be developed by startup Momenta and will debut on the CLA electric sedan. The hardware will be based on Nvidia's Orin X chip.
The all-electric CLA will be equipped with a high-level intelligent driving system that does not rely on high-definition maps. This advanced system will provide navigation in the city, and mass production of the electric car is scheduled for April 2025.
Mercedes-Benz is one of Momenta's investors, along with GM and SAIC.
@CarsNews
#Mercedes#EV#driverless
🚕Waymo robotaxis are back at the center of a scandal
📍 This time, the vehicles caused chaos on the streets of San Francisco.
🚥 The autonomous taxis use the traffic-light system for navigation, so when it goes down, route planning breaks as well.
⛔ For several hours, Waymo cars stood on the roads like bricks, blocking other drivers from getting through.
Is rise of the the machines beginning?
#driverless#incidents@Car_News
😰Three Waymo robotaxis caused a “standoff” and blocked a street in San Francisco
📰 In the northern part of San Francisco, three Waymo autonomous taxis got stuck on a narrow street, completely blocking traffic. Two cars lightly collided while trying to maneuver, after which both went into emergency mode, and the third stopped right in front of them, creating a full traffic jam.
😤 Because of this, residents couldn’t leave their driveways and had to wait for company engineers to intervene and resolve the situation. All vehicles were empty — no passengers were inside.
💬 Waymo commented on the incident, calling it a “learning moment” for improving their autonomous driving system.
#driverless#incidents@Car_News