[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Minë-dev] Pues no me aclaro con la privacidad: Socorrrooooooo
From: |
Pablo \"Aranarth\" |
Subject: |
Re: [Minë-dev] Pues no me aclaro con la privacidad: Socorrrooooooo |
Date: |
Thu, 20 Mar 2003 23:09:19 +0100 |
User-agent: |
KMail/1.4.3 |
Mira, para ahorrar tiempo te copio de Python Pocket Reference:
(traducción propia):
Por defecto, todos los nombres de atributos y clases son visibles en todas
partes. Algunos convenios especiales permien cierta ocultación de los datos,
pero se centran sobre todo en aspectos de diseño para evitar colisión de los
espacios de nombres.
Privados de módulo:
Aquellos nombres en un módulo que empiecen con un solo guion bajo _ (ej: _X) y
aquellos no listados en la lista __all__ del módulo no se copian cuando se
realiza el from module import *
No se trata de privacidad estricta ya que esos nombres pueden ser accedidos al
margen de la sentencia from ...
Privados de clase:
A partir de python 1.5, nombres en cualquier lugar dentro de sentencias en la
clase que empiecen con doble guin bajo (ej: __X) se modifican en tiempo de
compilación para adoptar la forma _Clase.__X Esto permite alejarlos del
espacio de nombres del 'self'. [...] Sigue sin ser privacidad estricta ya que
es posible acceder a los nombres mediante la modificación efectuada.
Resumen ;-)
La clave está en 'documentar' el código. La clave de los atributos y método
privados no es la imposibilidad de poder acceder a ellos directamente sino la
seguridad de que no se producirán conflictos. La API estará formada por los
métodos y atributos públicos y sólo si se conocen (por el código fuente) los
detalles de métodos y atributos privados se podrá acceder a ellos sin
problemas.
Python funciona de esta manera (Hirunatan te lo puede confirmar). Se potencia
el diseño propio frente al diseño del lenguaje (como Java).
Saludos
--
Pablo Ruiz Múzquiz "Aranarth"
Smial de Hammo