Advertisement
Fhernd

propiedad_calculo_tardio.py

Jan 6th, 2019
908
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.82 KB | None | 0 0
  1. import math
  2.  
  3.  
  4. class PropiedadTardia:
  5.     def __init__(self, funcion):
  6.         self.funcion = funcion
  7.  
  8.     def __get__(self, instancia, clase):
  9.         if instancia is None:
  10.             return None
  11.         else:
  12.             valor = self.funcion(instancia)
  13.             setattr(instancia, self.funcion.__name__, valor)
  14.  
  15.             return valor
  16.  
  17.  
  18. class Circulo:
  19.     def __init__(self, radio):
  20.         self.radio = radio
  21.  
  22.     @PropiedadTardia
  23.     def area(self):
  24.         print('Computando el área...')
  25.         return math.pi * self.radio ** 2
  26.  
  27.     @PropiedadTardia
  28.     def perimetro(self):
  29.         print('Computando el perímetro...')
  30.         return 2 * math.pi * self.radio
  31.  
  32.  
  33. circulo = Circulo(3.0)
  34. print(circulo.radio)
  35. print(circulo.area)
  36. print(circulo.area)
  37. print(circulo.perimetro)
  38. print(circulo.perimetro)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement