python的单例模式

所谓单例,是指一个类的实例从始至终只能被创建一次。

方法1

使用类在初始化时候被实例

 1 class NBSite(object):
 2     def __init__(self):
 3         self.name = 'nb'
 4         self.namespace = 'nb'
 5         self._registry= {}
 6     def register(self,model,model_nb=None):
 7         if not model_nb:
 8             model_nb=ModelNB
 9         self._registry[model]=model_nb(model,self)
10         print(self._registry)
11     def login(self,request):
12         return HttpResponse('登陆页面')
13     def logout(self,request):
14         return HttpResponse('注销页面')
15 
16 
17     def get_urls(self):
18         patterns=[]
19         from django.conf.urls import url
20         patterns +=[
21             url(r'^login/',self.login),
22             url(r'^logout/',self.logout),
23         ]
24         for model_class,model_nb_obj in self._registry.items():
25             patterns +=[
26                 url(r'^%s/%s/' %(model_class._meta.app_label,model_class._meta.model_name,),
27                     model_nb_obj.urls)]
28         return patterns
29     @property
30     def urls(self):
31         return self.get_urls(),self.name,self.namespace
32 
33 site=NBSite()

 

posted @ 2017-10-18 20:17  一锅煮不下  阅读(169)  评论(0)    收藏  举报