单例模式:该模式的主要目的是确保某一个类只有一个实例存在
class singleton:
name='sing'
借助第三方变量
__instance=None;
def __new__(cls, *args, **kwargs):
if cls.__instance == None:
cls.__instance=object.__new__(cls);
return cls.__instance;
else:
return cls.__instance;
def __init__(self,score):
self.score=score;
s=singleton(60);
setattr(singleton,'name','oop')
print(singleton.name)
print(s.__getattribute__('score'))
s.__setattr__('score2',70)
print(s.__getattribute__('score2'))
print('getattr(s,score2)',getattr(singleton,'name'))
print('hasattr(s,score2)', hasattr(s,'score2'))
print(id(s))
s1=singleton();
print(id(s1))
a,b=10,5;
c=a;
a=b;
b=c;
#b,a=a,b;
print(a,b)
继承续集:
class student:
__slots__ = ('name','age');
def __init__(self,name,age):
self.name=name
self.age =age
def SayHi(self):
print('我是:%s 今年 %d'%(self.name,self.age))
def __call__(self, *args, **kwargs):
print('--> <--')
def goHome():
print("s 走路回家..")
student.gohome=goHome
s=student('tom',20);
print(s)
s('123','456')
print( callable(s))
# s2=student('jack',20);
# s2.goHome(s2.name)