python 元类型编程, 单例模式SingleTon的一种实现方式
2012-12-24 20:41
781 查看
原理:利用元类型,重新定义类实例化一个新对象的方法(__call__)行为。让其只返回同一个实例。
运行效果:
都是指向同一个地址,同一个实例。
#-*- coding: UTF-8 -*- #------------------------------------------------------------------------------- # Name: ģ��shell # Purpose: Ӧ�ó����main��ں��� # # Author: ankier # # Created: 26-10-2012 # Copyright: (c) ankier 2012 # Licence: <your licence> #------------------------------------------------------------------------------- class SingleTonMeta(type): ## @summary: 类初始化一个新的对象时,call到的方法。 def __call__(cls, *args): if not hasattr(cls, 'instance'): cls.instance = super(SingleTonMeta, cls).__call__(*args) #返回单实例 return cls.instance class Cache(object): __metaclass__ = SingleTonMeta def main(): cache1 = Cache()# 将call SingleTonMeta.__call__ cache2 = Cache()# 将call SingleTonMeta.__call__ print cache1 == cache2 if __name__ == '__main__': main()
运行效果:
True <__main__.Cache object at 0x00BB7B30> <__main__.Cache object at 0x00BB7B30>
都是指向同一个地址,同一个实例。
相关文章推荐
- Singleton模式的实现方式 C#
- Python下singleton模式的实现方法
- minigui界面生成工具的一种简单实现方式,轻松实现Windows/linux minigui 跨平台界面编程
- 剑指Offer-【面试题02:实现Singleton 模式——七种实现方式】
- Python单例模式的实现方式
- 对一种基于CAS的Singleton实现方式的探讨
- java中singleton模式与延迟初始化实现方式总结
- 剑指Offer 面试题2 : 实现Singleton(单例)模式——七种实现方式
- Singleton_模式_关于单例(Singleton)模式实现方式的反思
- python一种用staticmethod实现单例模式方法的探讨
- Singleton模式的double check实现方式
- Python Singleton(单例模式)实现
- Singleton_模式_关于单例(Singleton)模式实现方式的反思
- [Java设计模式](一)怎样实现Singleton(单例)模式编程
- python实现单例模式的四种方式及相关知识解释
- Python中实现装饰模式的三种方式
- [OC]Singleton的一种简便实现方式
- Python3之实现单例模式de几种方式
- python一种用classmethod实现单例模式方法的探讨
- Python中的单例模式的几种实现方式的及优化