LINUX.ORG.RU

История изменений

Исправление makoven, (текущая версия) :

То есть импортируем init() где надо

А смысл? Вызов init не импортирует в текущий модуль глобальные переменные, определенные в init()

Кроме того sqlite и так не очень «многопользовательская». Как-то глупо создавать по новому подключению к БД в каждом модуле, который желает поработать с БД. Хотя, конечно, можно запердолить синглтон

зачем нужны данные подключения другим модулям, может сразу функцию коннекта написать в __init__.py

Во-первых, потому, что в реальности вызов Db может быть таким:

DB = Db(CFG['db_path'], Path(sys.path[0]) / 'sql_files')
таскать такое в каждый модуль неразумно

Во-вторых, проект можно стартовать через разные файлы (например, python3 project/tui.py, python3 project/web,py, etc) и где-то все-равно придется держать функцию инициализации всякого хлама. Вместо __init__.py логичнее поместить это в settings.py, но последний оккупировала джанга :)

Исправление makoven, :

То есть импортируем init() где надо

А смысл? Вызов init не импортирует в текущий модуль глобальные переменные, определенные в init()

Кроме того sqlite и так не очень «многопользовательская». Как-то глупо создавать по новому подключению к БД в каждом модуле, который желает поработать с БД. Хотя, конечно, можно запердолить синглтон

зачем нужны данные подключения другим модулям, может сразу функцию коннекта написать в __init__.py

Во-первых, потому, что в реальности вызов Db может быть таким:

DB = Db(CFG['db_path'], Path(sys.path[0]) / 'sql_files')
таскать такое в каждый модуль неразумно

Во-вторых, проект можно стартовать через разные файлы (например, python3 project/tui.py, python3 project/web,py, etc) и где-то все-равно придется держать функцию инициализации всякого хлама. Вместо __init__.py логичнее поместить это в settings.py, но последний оккупировала джанга )

Исправление makoven, :

То есть импортируем init() где надо

А смысл? Вызов init не импортирует в текущий модуль глобальные переменные, определенные в init()

Кроме того sqlite и так не очень «многопользовательская». Как-то глупо создавать по новому подключению к БД в каждом модуле, который желает поработать с БД. Хотя, конечно, можно запердолить синглтон

зачем нужны данные подключения другим модулям, может сразу функцию коннекта написать в __init__.py

Во-первых, потому, что в реальности вызов Db может быть таким:

DB = Db(CFG['db_path'], Path(sys.path[0]) / 'core')
таскать такое в каждый модуль неразумно

Во-вторых, проект можно стартовать через разные файлы (например, python3 project/tui.py, python3 project/web,py, etc) и где-то все-равно придется держать функцию инициализации всякого хлама. Вместо __init__.py логичнее поместить это в settings.py, но последний оккупировала джанга )

Исправление makoven, :

То есть импортируем init() где надо

А смысл? Вызов init не импортирует в текущий модуль глобальные переменные, определенные в init()

Кроме того sqlite и так не очень «многопользовательская». Как-то глупо создавать по новому подключению к БД в каждом модуле, который желает работать с БД. Хотя, конечно, можно запердолить синглтон

зачем нужны данные подключения другим модулям, может сразу функцию коннекта написать в __init__.py

Во-первых, потому, что в реальности вызов Db может быть таким:

DB = Db(CFG['db_path'], Path(sys.path[0]) / 'core')
таскать такое в каждый модуль неразумно

Во-вторых, проект можно стартовать через разные файлы (например, python3 project/tui.py, python3 project/web,py, etc) и где-то все-равно придется держать функцию инициализации всякого хлама. Вместо __init__.py логичнее поместить это в settings.py, но последний оккупировала джанга )

Исправление makoven, :

То есть импортируем init() где надо

А смысл? Вызов init не импортирует в текущий модуль глобальные переменные, определенные в init()

Кроме того sqlite и так не очень «многопользовательская». Как-то глупо создавать по новому подключению к БД в каждом модуле. Хотя, конечно, можно запердолить синглтон

зачем нужны данные подключения другим модулям, может сразу функцию коннекта написать в __init__.py

Во-первых, потому, что в реальности вызов Db может быть таким:

DB = Db(CFG['db_path'], Path(sys.path[0]) / 'core')
таскать такое в каждый модуль неразумно

Во-вторых, проект можно стартовать через разные файлы (например, python3 project/tui.py, python3 project/web,py, etc) и где-то все-равно придется держать функцию инициализации всякого хлама. Вместо __init__.py логичнее поместить это в settings.py, но последний оккупировала джанга )

Исходная версия makoven, :

То есть импортируем init() где надо

А смысл? Вызов init не импортирует в текущий модуль глобальные переменные из init()

Кроме того sqlite и так не очень «многопользовательская». Как-то глупо создавать по новому подключению к БД в каждом модуле. Хотя, конечно, можно запердолить синглтон

зачем нужны данные подключения другим модулям, может сразу функцию коннекта написать в __init__.py

Во-первых, потому, что в реальности вызов Db может быть таким:

DB = Db(CFG['db_path'], Path(sys.path[0]) / 'core')
таскать такое в каждый модуль неразумно

Во-вторых, проект можно стартовать через разные файлы (например, python3 project/tui.py, python3 project/web,py, etc) и где-то все-равно придется держать функцию инициализации всякого хлама. Вместо __init__.py логичнее поместить это в settings.py, но последний оккупировала джанга )