File: singleton.py

package info (click to toggle)
python-application 1.2.4-1
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 280 kB
  • ctags: 428
  • sloc: python: 1,748; makefile: 6
file content (35 lines) | stat: -rwxr-xr-x 896 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/usr/bin/python

from application.python.util import Singleton

class Unique(object):
    """This class has only one instance"""
    __metaclass__ = Singleton

class CustomUnique(object):
    """This class has one instance per __init__ arguments combination"""
    __metaclass__ = Singleton

    def __init__(self, name='default', value=1):
        self.name = name
        self.value = value


o1 = Unique()
o2 = Unique()

print "o1 is o2 (expect True):", o1 is o2

co1 = CustomUnique()
co2 = CustomUnique()
co3 = CustomUnique(name='myname')
co4 = CustomUnique(name='myname')
co5 = CustomUnique(name='myname', value=2)
co6 = CustomUnique(name='myothername')

print "co1 is co2 (expect True):", co1 is co2
print "co3 is co4 (expect True):", co3 is co4
print "co1 is co3 (expect False):", co1 is co3
print "co4 is co5 (expect False):", co4 is co5
print "co4 is co6 (expect False):", co4 is co6