Re: [Python-es] Otra vez la herencia múltiple

Beni camontuyu en yahoo.es
Mar Jul 29 17:10:07 CEST 2008


2008/7/29 Hernan M Foffani <hfoffani en gmail.com>

> ¡Pero en Python no hay que introducir nada! El lenguaje la libertad para
> hecer lo que quieras, clases abstractas inclusive.
>
> El problema sólo se reduce (y reconozco que no es un tema menor)
> a un problema de estandarización.
>
> > A más posibilidades que nos ofrezca el lenguaje más podremos dar rienda
> > suelta a nuestra creatividad. Ya que con python, es el lenguaje con el
> que
> > más cómodo me siento. Hay que adaptarse a cada lenguaje de programación,
> > pero sin desechar ideas que creo que son buenas para definir y
> estructurar
> > problemas.
>
> Doy un ejemplo para explicarme mejor.
> Que en C# puedas definir explicítamente atributos de acceso como private,
> internal, protected y public, no significa que Python te limita al carecer
> de
> esos atributos. Puedes dar ochocientas vueltas e incluso, crear metaclases
> y atributos para simular ese comportamiento. Sin embargo, lo mejor es
> olvidarse del tema y encarar el problema respetando el espíritu del
> lenguaje.
>

Totalmente cierto, yo defino mis "clases abstractas" de la siguiente forma

class A:
    def metodo(self):
        raise NotImplementedError()

Al fin y al cabo son clases normales y corrientes y no se que sería más
util:

- si crear una palabra reservada mas para definir explicitamente una clase
abstracta (abstract clase por ejemplo)
- o seguir con la filosofía de python como recomiendas (se puede hacer
cualquier cosa).

Como estoy programando en python, habrá que adaptarse y disfrutar con su
forma de programar. Por eso es tan rápido desarrollar en él.

Todas estas dudas son por que estoy desarrollando un programa con poco de
envergadura y quiero definir toda la estructura de clases. Siempre he usado
la metodología de OO (con otros lenguajes) y necesitaba aplicarla
correctamente en python.


> > ¿Cuando van a introducir el concepto ese de ABC?... ¿en python 2005?
>
> En Python 3.0. Python no numera sus versiones con años. Quizás querías
> decir python 3000. Lo de 3000 empezó casi como broma sobre la numeración
> de versiones de Microsoft con su Visual Studio. El 3000 se usaba referirse
> al
> Python en un futuro indefinido.
>
> La versión 3.0 ya está disponible. Hace unos pocos días salió la segunda
> beta.


Jeje, si, ha sido un error me refería al pyhton 3000. Es lo que tiene
escribir un post justo antes de salir de curro.

-- 
Benito Rodríguez Arcos


Más información sobre la lista de distribución Python-es