#__get__ in python
import math
class Square(object):
class Area(object):
def __get__(self, aBear, clsBear):
if aBear is None:raise AttributeError
return aBear.edge_length * aBear.edge_length
def __set__(self, aBear, area):
if aBear is None:raise AttributeError
aBear.edge_length = math.sqrt(area)
area = Area()
def __init__(self,edge_length):
self.edge_length = edge_length
aSquare = Square(3.0)
print aSquare.area
print Square.__dict__["area"].__get__(aSquare,Square)
aSquare.area = 16.0
print aSquare.edge_length
No comments:
Post a Comment