1. 单例
def singleton(cls, *args, **kw):
instances = {}
def _singleton():
if cls not in instances:
instances[cls] = cls(*args, **kw)
return instances[cls]
print(instances)
return _singleton
@singleton
class A(object):
def __init__(self):
self.name = 'zzk'
def what_name():
return A()
name1 = what_name()
print(name1)
a = A()
print(a)
name = a.name
print(name)
{}
<__main__.A object at 0x7f4a1a195828>
<__main__.A object at 0x7f4a1a195828>
zzk
class A(object):
def __init__(self):
self.name = 'zzk'
def what_name():
return A()
name1 = what_name()
print(name1)
a = A()
print(a)
name = a.name
print(name)
<__main__.A object at 0x7fdbe80cb828>
<__main__.A object at 0x7fdbe80d0710>
zzk