-1

我有多个类(使用线程同时运行)。他们都需要访问一个字典/对象(包含来自数据库的配置值,以及对所有其他对象的引用,以便能够在 2 个线程之间调用方法)

实现这一点的最佳方法是什么?
我应该创建一个保存和获取数据的模块吗?
全局变量?

我对 Python 很陌生,我觉得我以错误的方式接近这个

编辑(小示例脚本)

#!/usr/local/bin/python3.3

class foo(threading.Thread):
    def run(self):
        # access config from here
        y = bar(name='test').start()

        while True:
            pass
    def test(self):
        print('hello world')

class bar(threading.Thread):
    def run(self):
        # access config from here
        # access x.test() from here

if __name__ == '__main__':
    x = foo(name='Main').start()
4

1 回答 1

1

如果你的程序足够大,有很多全局数据,那么创建一个模块并将所有全局数据放在那里是个好主意。从您的其他模块导入此模块并使用它。如果程序很小,那么全局变量可能更合适。我在这里假设这将是一个只读结构,否则事情会变得复杂。这是第一种情况的示例(假设Config是 file 中的类global_mod.py):

from global_mod import Config

class foo(threading.Thread):
    def run(self):
       # do something with cfg
       y = bar(name='test').start()

       while True:
           pass

    def test(self):
       print('hello world')

class bar(threading.Thread):
    def run(self):
        # do something with cfg
        # access x.test() from here

if __name__ == '__main__':
    cfg = Config()
    x = foo(name='Main').start()
于 2013-07-11T21:40:11.560 回答