Fhernd icon

propiedad_calculo_tardio.py

Fhernd | PRO | 01/06/19 02:09:33 PM UTC | 0 ⭐ | 2217 👁️ | Never ⏰ | []
Python |

820 B

|

None

|

0 👍

/

0 👎

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

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎