1

我有一个 config.py 单例模块,其中包含:

class Singleton:
    """"""
    def __init__(self, name, bases, namespace):
        self._obj=type( name, bases, namespace )()

    def __call__(self):
        return self._obj


class ConfigObj(object):
    """"""
    __metaclass__ = Singleton


    def __init__(self):
        """"""
        self._dataOne = '0010'
        self._dataTwo = None

        print self._dataOne

    def setData(self,val)
        """"""
        self._dataTwo = val

    def getData(self)
        """"""
        return self._dataTwo

def Config():
    """Create instance of config singleton"""
    ConfigObj()

def ConfigSetData(val):
    """Set config data"""
    ConfigObj().setData(val)

def ConfigGetData():
    """Get config data"""
    return ConfigObj().getData()

我有一个 suite.py 模块,其中包含:

Config()
ConfigSetData('22')
print ConfigGetData()

运行时,会按预期创建单例“ConfigObj”,并且单例对象 ID 仍然存在。在调试期间,似乎 self._dataTwo 被重新分配。

但是,当调用 ConfigGetData() 函数时,它显示 self._dataTwo 的值仍被分配为 None 并且打印语句失败并出现“非类型”异常。

关于如何对 self._dataTwo 进行更改的任何建议都受到欢迎?

4

0 回答 0