Python:Singleton类对象在导入之间持续列表? (像django管理员注册表) [英] Python : Singleton class object to persist list between imports ? (Like django admin register)

查看:164
本文介绍了Python:Singleton类对象在导入之间持续列表? (像django管理员注册表)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想要有 dict / list ,我可以添加值,就像模型可以添加到django中的管理员注册表



我的尝试:(包 - > __init __。py

#Singleton对象

#__init__.py(包:包)
类记住:
a = []
def add(data) :
a.append [data]

def get():
return a

obj = remember()


#models1.py
import pack

pack.obj.add(data)

#models2.py
import包

pack.obj.add(data2)
打印包.obj.get()

#我们应该得到:[data,data2]
#我们得到:[data2]



如何实现所需的功能?



有些人说如果你不需要子类,怎么用方法呢? p>

更新:
更清楚:


就像 django admin register 任何一个都可以导入和注册自己的管理员,所以注册表在导入之间保留。



解决方案

如果这是一个单身人士,你可以看看这个旧的博客文章。它包含一个文件良好的实施链接( here )。


I want to have dict / list to which I can add values, just like models can be added to the admin register in django !

My attempt : (package -> __init__.py)

# Singleton object

# __init__.py (Package: pack)
class remember:
  a = []
  def add(data):
    a.append[data]

  def get():
    return a

obj = remember()


# models1.py
import pack

pack.obj.add("data")

# models2.py
import pack

pack.obj.add("data2")
print pack.obj.get()   

# We should get: ["data", "data2"] # We get : ["data2"]

How to achieve the desired functionality ?

Some say that methods can do this if you don't need sub-classing, how to do this with methods ?

Update: To be more clear :

Just like django admin register any one can import and register itself with admin, so that register is persisted between imports.

解决方案

If it's a singleton you're after, have a look at this old blog post. It contains a link to a well documented implementation (here).

这篇关于Python:Singleton类对象在导入之间持续列表? (像django管理员注册表)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆