首先,我想说我对Python编程相当新,因此我解决问题的方法可能不正确,如果是这种情况请告诉我.
我试图使用Singleton类在我的代码中存储配置参数,并在需要时使用它.我遇到一个问题,即初始创建中存储在Singleton中的数据不会保留在对Object的后续调用中.
也许我创建Singleton对象的方式不正确,但我正在关注SO上的代码示例.
首先是我的Singleton课程
class Config(object):
__instance = None
dbserver = ""
def __new__(cls):
if cls.__instance == None:
__instance = object.__new__(cls)
__instance.name = "Configuration Object"
return __instance
Run Code Online (Sandbox Code Playgroud)
这是我最初创建的Singleton实例
configurator = Config()
configurator.dbserver = dbserver
Run Code Online (Sandbox Code Playgroud)
然后我执行以下操作,dbserver属性返回空字符串.
configurator = Config()
print configurator.dbserver
Run Code Online (Sandbox Code Playgroud)
谢谢你的时间阅读.
您似乎没有将局部变量分配给__instance类变量cls.__instance.
但是,如果你只是这样做来存储变量,我不知道为什么你需要一个实例.只需将它们直接存储在类中 - 它本身就是Python中的第一类对象 - 甚至可以使用更加Pythonic的模块.
编辑
使用类本身不会导致每次重新运行代码:类级别的代码仅在定义类时执行,这在首次导入时发生.
但是由于类必须存在于某个模块(文件)中,因此您可以轻松地将所有代码直接放在模块中,并将其导入到您需要的位置.同样,模块级别的代码仅在首次导入时执行.
| 归档时间: |
|
| 查看次数: |
162 次 |
| 最近记录: |