[pyar] Nombrando clases en Python (convenciones)

Hernan Grecco hernan.grecco en gmail.com
Lun Oct 7 18:58:24 ART 2013


Hola,

Hace un tiempo en una reunión de café, se armó una discusión acerca de
cómo nombrar clases en Python. Quería tirar el tema a la lista para
ver si hay alguna opinión mayoritaria o algún argumento contundente.

Algunos proponían nombrar las clases de forma descriptiva. Hago un
ejemplo con dos módulos ficticios que definen servidores/clientes para
ftp y http.

En ftp.py definis FTPServer
En http.py definis HTTPServer

y después lo usas:

from ftp import FTPServer
from http import HTTPServer

f = FTPServer()
h = HTTPServer()

A favor:
- similar a como se hace en la standard library
- nombres de las clases independientes del contexto (lease modulo)
En contra:
- nombres largos, un poco repetitivos, sobre todo cuando se los usa en
el mismo modulo (ej. usar FTPServer dentro de ftp.py)
- puede volverse molesto nombrar clases derivadas de forma descriptiva.

Otros proponían algo mas similar a lo que hace google go:

En ftp.py definis Server
En http.py definis Server

y después lo usas:

import ftp
import http

f = ftp.Server()
h = http.Server()

a favor:
- nombres cortos y claros
en contra:
- requiere un lookup adicional (lo cual no parece ser mayor problema a
menos que se llame muchas veces)

Opiniones?

Hernán
Pd.- Esta claro que usando `as` puede pasarse de uno a otro fácilmente
pero  las clases se usan mayoritariamente como son definidas.


More information about the pyar mailing list