import math
class PropiedadTardia:
def __init__(self, funcion):
self.funcion = funcion
def __get__(self, instancia, clase):
if instancia is None:
return None
else:
valor = self.funcion(instancia)
setattr(instancia, self.funcion.__name__, valor)
return valor
class Circulo:
def __init__(self, radio):
self.radio = radio
@PropiedadTardia
def area(self):
print('Computando el área...')
return math.pi * self.radio ** 2
@PropiedadTardia
def perimetro(self):
print('Computando el perímetro...')
return 2 * math.pi * self.radio
circulo = Circulo(3.0)
print(circulo.radio)
print(circulo.area)
print(circulo.area)
print(circulo.perimetro)
print(circulo.perimetro)
Comments
0 B
|👍
/👎