在模块共享导入Python中创建全局对象

时间:2015-06-16 16:03:40

标签: python python-2.7

我的模块中有一个数据库类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

0 个答案:

没有答案