2011-03-21 32 views
0

对于python中的类如何实现单例属性。请为下面的类提供一个示例。我基本上试图理解的是,如果该类的一个实例存在,那么它应该返回现有的其他实例创建该类的一个实例python中的单例类

class Test: 
    name 
    age 

    def getobj(self): 
     return (self.name+self.age) 

    t= Test() 
+0

这功课吗?你有什么尝试? – 2011-03-21 20:41:45

+6

单身人士和雇员?什么。 – 2011-03-21 20:42:48

+2

请参见[this](http://stackoverflow.com/questions/31875/is-there-a-simple-elegant-way-to-define-singletons-in-python)。 – nmichaels 2011-03-21 20:44:01

回答

6

您不应将singleton实现为类。使用一个模块,作为一个单身人士,效果很好。

另外:Is there a simple, elegant way to define singletons?

+0

为什么不把Singleton作为一个类来实现? – Alcott 2011-09-20 00:10:41

+0

你可以这么做,但是由于一个模块可以根据需要正确动作,为什么要麻烦呢?不像在C++或Java中,你不能强迫用户不要创建更多的单例实例(所有东西都是公开的或者被破坏的,但仍然可以访问)。使用模块可以创建一个真实的单身人士,只存在于一个实例中。 – gruszczy 2011-09-21 08:33:42

2

我个人不会对这样的类使用Singleton设计模式,与你确保有一个单身,只有永远不会是其中之一。你为什么只想要一个员工?

你可以说,有一个employeeManager或一个employeeList,即使我不是那种对它的巨大爱好者。

+0

如果一个emp对象被设置,那么我不需要创建一个。那是目标 – Hulk 2011-03-21 20:48:35