estilo en nobre de objetos
Arnau Sanchez
arnau en ehas.org
Mie Nov 14 12:29:31 CET 2007
damufo escribió:
> privados (private property _noun_with_leading_underscore
> _is_updated)?
> Cuando defino los botones, cajas de texto, combos... deberían ser algo así?
>
> self._nombre_objeto= wx.Button(self, label="Send Message")
Se diría que el botón de un GUI no necesita ser accesible desde fuera,
así que sí, el atributo sería privado (más bien, de uso interno):
"self._send_button", por ejemplo.
¿No te pareció interesante unificar los widgets como te comenté? En ese
caso quedaría: self._widgets.send_button.
> Nota: La verdad es que esta forma no me gusta nada de nada.
Dices que no te gusta, ¿pero el qué? ¿que empiece por guión bajo? ¿las
minúsculas? Todo depende de lo estricto que te pongas, pero ésta es una
convención muy extendida. Un buen ejercicio es estudiar código
"canónico", e ir empapándose de buenas prácticas, mira la salida de:
$ grep -r "self\._[a-z]" /usr/lib/python2.5
Verás la cantidad de veces que se usa en la librería oficial.
En otros lenguajes quizá sea sólo una cuestión de estilo, pero en Python
y demás lenguajes con introspección potente, cómo nombras las variables
es muy importante.
Por ejemplo: si en tu clase alguna vez utilizas "self.var1",
implícitamente estarás exponiendo "var1", así que debería poder usarse,
desde fuera, libremente (y puede esperarse que exista en versiones
posteriores, con funcionalidad equivalente). Si, en cambio, lo llamas
"self._var1" estarás diciendo: "En estos momentos existe un atributo
llamado _var1, pero me reservo el derecho a cambiar desde su nombre,
cómo funciona, o incluso quitarlo si me viene en gana; si lo usas
externamente, es tu problema".
A diferencia de otros lenguajes Python no tiene "keywords" para definir
lo que es público/privado/protegido; se confía en que los programadores
sigan las convenciones establecidas.
Espero que sea de ayuda,
arnau
pd:
> Por cierto no se como hago pero siempre me como alguna letra. Lo digo
> por poner nobre en lugar de nombre en el asunto. En fin... un colleja
> para mi.
Eso nos pasa a todos. Una extensión de corrección ortográfica en el
cliente de correo (sea Thunderbird, Sylpheed, KMail, etc) es de gran
ayuda para filtrar gazapos.
------------ próxima parte ------------
_______________________________________________
Lista de correo Python-es
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes
Más información sobre la lista de distribución Python-es