如何搜索这个时遇到了麻烦,所以如果答案已经存在,请指出我正确的方向,我很乐意删除它。
我的 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 没有我所理解的那些。
谢谢。
在 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()