我的模块中有一个数据库类db.py
,我只能调用一次,我的设计目标是拥有一个数据库对象,并在所有其他模块中使用它。因此db
具有布局
#db.py
Class DatabaseManager
def __init__():
# initialize engine and database
db = DatabaseManager()
问题在于多次导入db每次重新初始化,我希望能够做的是:
# polygon.py
from db import db
class Polygon:
def something(self):
db.commitChange(...)
# main.py
class GUIWindow:
def something(self):
db.getJSON(...)
如何为整个程序创建一个对象,并让导入db的所有其他模块使用一个对象?我的印象是db不会重新初始化,但是我接收引擎初始化输出两次,这里有一个示例和我的输出
# db.py
class DatabaseManager(object):
'''
classdocs
'''
def __init__(self):
'''
Constructor
'''
print "hi"
db = DatabaseManager()
# polygon.py
from db import db
# main.py
from db import db
输出:
hi
hi