Многие из тех кто активно работал с 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
Lookonchain | ꘜ
An #Ethereum ICO participant who bought 100K $ETH(costing $31K) sold 4,283 $ETH($18.97M) again recently.
He has sold 44,284 $ETH($105M) at an average price of $2,378 since 2021, leaving 55,716 $ETH($261.6M).
The total profit is ~$366.8M, an 11,835x return!
https://etherscan.io/address/0x815c53bf36a3bc8b066715da459b365e6ce6c3ed
https://etherscan.io/address/0x2c06dd922b61514aafedd84488c0c28e6dcf0e99
Lookonchain | ꘜ
An #Ethereum ICO participant who received 20,000 $ETH( cost $6,200, now $86.6M) just sold another 2,300 $ETH($9.91M) 20 minutes ago, leaving him with 1,623 $ETH($6.99M).
https://x.com/lookonchain/status/1729788901756211328