human
I am working on the file "Clase 09 -  Introducción POO.ipynb".
The first task is:
Y como dijimos antes, una objeto no sólo agrupa sus características, sino también los métodos que nos permiten trabajar con él, como por ejemplo, podría ser calcular su superficie de apoyo:
Can you write Python program for it?
assistant
#Here is the Python program you requested.

import math

class TablaRectangular(object):
    base = None
    altura = None
    
    def __init__(self, base, altura):
        self.base = base
        self.altura = altura
        
    def calcular_superficie(self):
        return self.base * self.altura

class TablaRedonda(object):
    radio = None
    
    def __init__(self, radio):
        self.radio = radio
        
    def calcular_superficie(self):
        return math.pi * self.radio**2

class Pata(object):
    altura = None
    
    def __init__(self, altura):
        self.altura = altura
        
class Mesa(object):
    tabla = None
    patas = None
    
    def __init__(self, tabla, patas):
        self.tabla = tabla
        self.patas = patas

    def obtener_superficie_de_apoyo(self):
        return self.tabla.calcular_superficie()
        
tabla = TablaRectangular(100, 150)
pata_1 = Pata(90)
pata_2 = Pata(90)
pata_3 = Pata(90)
pata_4 = Pata(90)
mi_mesa = Mesa(tabla, [pata_1, pata_2, pata_3, pata_4])

sup = mi_mesa.obtener_superficie_de_apoyo()
print 'La superficie de la mesa es {} cm2'.format(sup)