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
|
class PassePartout:
"""Universal Proxy Object"""
_exemple= None
def __init__(self): pass
def __getattr__(self,key):
if key== "__str__": return "PassePartout"
if key== "__repr__": return "PassePartout"
return PassePartout()
def __setattr__(self,key,value): pass
def __getitem__(self,key): return PassePartout()
def __setitem__(self,key,value):
pass
def __str__(self):return "PassePartout"
def __repr__(self):return "PassePartout"
def __hash__(self):
"""same hashcode for every instance"""
if PassePartout._exemple is None:
PassePartout._exemple= PassePartout()
return object.__hash__(PassePartout._exemple)
def __call__(self,*args,**kwargs): return PassePartout()
def __nonzero__(self,*args,**kwargs): return True
def __coerce__(self,other):
this= None
if other.__class__== float(1.0).__class__: this= 0.0
if other.__class__== int(1).__class__: this= 0
return (this,other) |
Partager