【发布时间】:2020-08-14 16:04:44
【问题描述】:
我正在使用python-telegram-bot 在 Python3 中编写 Telegram Bot。目前,所有代码都放在一个文件中(>1k 行),结构如下:
import ...
a lot of bot's functions called by python-telegram-bot
database connection (SQLite3 using SQLAlchemy)
message's handlers
bot.polling()
我想通过对具有相似目的的函数进行分组来将这个整体文件拆分为多个 python 文件。但是,我不知道如何处理数据库连接:在主文件中,我有一个使用 sqlalchemy 创建的 session“全局”变量,并被所有其他函数使用,因为它在同一范围内。如何正确管理多个文件?最好的方法是什么?
【问题讨论】:
-
您将有多个模块需要对该全局变量的可见性。所以把那个变量放在一个不做任何项目导入的模式中。现在其他模块可以导入该模块而无需担心循环依赖并看到相同的变量。或者,您的所有模块化函数都可以包含连接对象作为参数。
-
相关:CodeReview Sharing a database connection with multiple modules。类似(作为 OT 关闭)Good practice sharing resources between modules?.
-
@tdelaney - 阅读您的评论后,我不确定我的答案是否正确。想发表评论吗?
标签: python sqlite sqlalchemy python-telegram-bot