В Python есть странный зверь — namespace packages. По идее, они решают проблему разделения одного пакета на несколько директорий. На практике же это сплошная путаница и боль.
Почему так: 🚩 У нас есть два способа делать одно и то же: explicit (через __init__.py + костыли) и implicit (PEP 420, без __init__.py). 🚩 Zen of Python говорит: “There should be one– and preferably only one –obvious way to do it”, но тут явно нарушено. 🚩 Новички легко создают случайные namespace пакеты, просто забыв __init__.py. 🚩 Явные пакеты оказываются несовместимыми между собой, implicit — хрупкие и медленные.
⚡️ Сценарий:
Представьте, вы в условном Gooble и хотите, чтобы все пакеты начинались с gooble.*.
Красиво, пока кто-то не решит, что gooble/__init__.py не нужен. Или наоборот, случайно добавит его. И всё — сломалось.
Вывод (и личный совет): ✅ Всегда кладите __init__.py в каждую директорию. ✅ Избегайте осознанных namespace packages — они слишком ненадёжные.
В Python есть странный зверь — namespace packages. По идее, они решают проблему разделения одного пакета на несколько директорий. На практике же это сплошная путаница и боль.
Почему так: 🚩 У нас есть два способа делать одно и то же: explicit (через __init__.py + костыли) и implicit (PEP 420, без __init__.py). 🚩 Zen of Python говорит: “There should be one– and preferably only one –obvious way to do it”, но тут явно нарушено. 🚩 Новички легко создают случайные namespace пакеты, просто забыв __init__.py. 🚩 Явные пакеты оказываются несовместимыми между собой, implicit — хрупкие и медленные.
⚡️ Сценарий:
Представьте, вы в условном Gooble и хотите, чтобы все пакеты начинались с gooble.*.
Красиво, пока кто-то не решит, что gooble/__init__.py не нужен. Или наоборот, случайно добавит его. И всё — сломалось.
Вывод (и личный совет): ✅ Всегда кладите __init__.py в каждую директорию. ✅ Избегайте осознанных namespace packages — они слишком ненадёжные.
In the “Bear Market Screaming Therapy Group” on Telegram, members are only allowed to post voice notes of themselves screaming. Anything else will result in an instant ban from the group, which currently has about 75 members. Some Telegram Channels content management tips Deputy District Judge Peter Hui sentenced computer technician Ng Man-ho on Thursday, a month after the 27-year-old, who ran a Telegram group called SUCK Channel, was found guilty of seven charges of conspiring to incite others to commit illegal acts during the 2019 extradition bill protests and subsequent months. 3How to create a Telegram channel?
from us