我有一个 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 进行更改的任何建议都受到欢迎?