ambar-dev
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]