我在如何搜索时遇到问题,所以如果答案已经存在,请指出我正确的方向,我很乐意将其删除。
我的Python代码中有这个
db = pg_driver.connect(user = DB_NAME,
password = DB_WORD,
host = DB_HOST,
port = DB_PORT
)
一切都很完美。我很好奇,如果我可以把它放到一个全局文件中,然后,做这样的事情:
db = global.db
# OR something like this, where the () says to actually do the opening.
db = global.db()
然后,只有本地db
将具有开放连接,但global.db
将保持我通常用于打开数据库的方式。我的想法是,不是只有四行,而是只有一行,如果我改变了一些关于如何连接到数据库的东西,我可以一次更新所有内容,而不必更新多个内容。
但是,我不希望global.db
保持永远开放的数据库连接,因为这可能会导致更新问题。此外,我无法在需要时使用打开和关闭数据库的良好做法。如果我要保持我的代码如图所示,并调用db.close()
,那么global.db
也将被关闭,并且对于脚本中的任何其他用途都无用。
理想情况下,这可以通过宏来完成,但Python并没有我所理解的那些。
感谢。
答案 0 :(得分:1)
在global.py
中,创建一个partial
对象。
import functools
db = functools.partial(pg_driver.connect,
user=DB_NAME,
password=DB_WORD,
host=DB_HOST,
port=DB_PORT)
然后,db
是一个可调用的对象,可以按照您的意愿使用。
import global
db = global.db()