Бывает начинающие в процессе обучения создают файлы с именем модуля который они изучают. В результате на тестовых запусках ничего не работает😱
Всё потому, что появилась коллизия имён. Например, изучаете вы модуль datetime, и создаёте с таким именем файл (ну логично же😄) прямо в рабочей директории.
Потом, при попытке импортировать datetime модуль, из-за приоритета импорта будет импортирован файл из рабочий директории а не оригинальная библиотека. Ведь имя файла это суть имя модуля!
А знаете ли вы, что не все стандартные модули можно так перезаписать? Коллизии имён не подвержены builtin модули. Они всегда стоят на первом месте в приоритете импорта, поэтому их нельзя заменить.
Полный список таких модулей можно посмотреть в списке sys.builtin_module_names.
То есть, вы сломаете весь Python если назовёте свой модуль os или site, но если назовёте time или gc то ничего страшного не случится)))
Тем не менее, никогда не называйте модули уже занятыми именами!!!⚠️
Я всегда рекомендую всем своим файлам делать именной префикс из 2-3 символов. Например я называю свои проекты так:
pw_project_name
pw_ui_tools.py
pw_something/main.py
Либо под ситуацию
tst_scriptname.py
(не "test" чтобы не подхватывал pytest)
dbg_script.py
maya_ui.py
hou_menu_tools.py
И искать проще, и коллизий нет.
#tricks#basic
Lookonchain | ꘜ
Whales are accumulating $BGB recently.
0x8900 withdrew 192,668 $BGB($936K) from #Bitget over the past 2 months.
0x171D withdrew 30,607 $BGB($134K) from #Bitget 2 days ago.
0x7C9C withdrew 20,980 $BGB($102K) from #Bitget over the past 3 months.
Notably, #Bitget has burned a total of 860M $BGB($5.25B) over the past 8 months, reducing the total supply by 43%.
https://intel.arkm.com/explorer/address/0x89006C3aADfF87c5113b835660E3459C6Ad61F16
https://intel.arkm.com/explorer/address/0x171D1285a9a8De3f16d4c45706d4E2F4A5C9e175
https://intel.arkm.com/explorer/address/0x7C9C4f9046ba2173fae539FE62eEFAb1aBAD1523