Многие из тех кто активно работал с Python2 несколько удивлены, почему в Python3 удобная функция reload() переехала из builtin в imp а потом и в importlib?
Ну было же удобно! А теперь лишний импорт😖
Дело в том, что начиная с Python3.3 функция reload() переписана на Python вместо Cи.
Что это нам даёт?
🔸 Такой код проще поддерживать и развивать
🔸 Python код легче читать, изучать и понимать.
Сравните это ➡️ и это ➡️.
🔸 Как результат пункта 2, проще писать свои расширения импорта. Например, пользовательский импортёр с какой-либо хитрой логикой по аналогии с импортом из zip архивов.
А есть ли у этого решения недостатки? Да, они всегда есть.
🔹 Так как это не builtin функция, её следует импортнуть перед использованием
🔹 Скорость замедлилась примерно на 5%. Очевидно, что это совершенно не критично. К тому же от версии к версии логика импорта будет оптимизироваться и ускоряться.
В самом начале файла importlib/__init__.py мы видим такой импорт:
import _imp # Just the builtin component, NOT the full Python module
То есть часть функционала по прежнему написана на Си, но достаточно низкоуровневая.
#basic
🇨🇳🤝🇷🇸Serbian MiG-29B fighters have received Chinese CM-400AKG hypersonic aeroballistic missiles as we reported yesterday, but let's look closer.
Photos have appeared online showing a fighter equipped with two Chinese CM-400AKG air-to-surface missiles. If confirmed, Serbia would become the second foreign operator of this weapon system.
The CM-400AKG is an aeroballistic missile developed on the basis of the SY400 unguided air-launched rocket. Since it weighs only about 910 kg, it can be carried even by light fighters such as the JF-17 Thunder, for which it was originally designed.
It reaches speeds of around Mach 5.5 to 6.3, which effectively makes Serbian MiG-29s the first fighters in Europe outside of Russia to gain hypersonic strike capability. At the current stage, this would put them ahead even of the Rafale F4.1/5 and Rafale-M, which are still awaiting the development and operational readiness of the ASN4G hypersonic missile. Depending on the variant, its strike range is reported to be between 240 and 400 km.
The guidance system includes:
- Inertial and satellite navigation
- Passive radar seeker
- Optionally: an infrared or television guidance channel
Serbia inherited part of its MiG-29 fleet from the Yugoslav Air Force, and later received additional aircraft from Russia and Belarus.
Although the onboard radars of these aircraft already lag well behind modern systems, integrating the CM-400AKG could significantly expand their strike capabilities. When using this missile, targeting data can come from external reconnaissance assets, so the age of the aircraft’s own radar is not a decisive factor.
At the same time, in 2024 Belgrade signed an agreement to purchase French Dassault Rafale fighters, which, according to specialized media reports, will have limited capabilities and will not receive long-range Meteor missiles.
Many link the choice of French aircraft to political factors and Serbia’s desire for closer integration with the European Union.
It is worth noting that Serbia has already purchased Chinese weapons before, for example the HQ-22 air defense system, selected as an alternative to the sanctioned Russian S-300 and S-400 systems.
If the integration of the CM-400AKG is confirmed, it could extend the service life of Serbian MiG-29s and draw the attention of other operators of this fighter, such as Algeria, Myanmar, Belarus, and Turkmenistan.
🤫 It is also noteworthy that, under the current circumstances, the Russian Ministry of Defense could quite plausibly purchase a batch of 300 to 500 CM-400AKG missiles, after which specialists at aircraft repair plants could adapt the weapon control systems of MiG-29S, SMT, M2, and MiG-29K fighters in service with the Russian Aerospace Forces for the use of these missiles in further strikes against AFU targets.
#info
#Mig29#Serbia
#China#Air_to_Air
#radar