Tipo de dato Money
Hern=?ISO-8859-1?Q?=E1n_Mart=ED?=nez Foffani
hernan en orgmf.com.ar
Jue Oct 16 21:24:46 CEST 2003
algunas acotaciones al vuelo...
>La idea es hacer un tipo de datos Money, basicamente para usos
>financieros, donde se necesitan decimales pero el punto flotante es
>demasiado inexacto.
me parece muy bien.
>Sería interesante (y útil) que esta clase pase a formar parte de la
>biblioteca estándar, falta verificar que condiciones debe cumplir para
>poder hacerlo.
http://www.python.org/peps/pep-0002.html
>Este código es de dominio público. En los módulos, asigné el copyright
>a PSF, falta verificar si hay que solicitar algo previamente.
estas dos frases son incompatibles.
dominio publico != PSF copyright
>...
>Se debe poder sobrecargar decimalSeparator y currencySymbol, para que
>se pueda cambiar facilmente haciendo una subclase. Ese mismo
>decimalSeparator es el que usa el constructor al recibir una string.
no mencionas los separadores de miles. tampoco haces mencion a temas
de localizacion.
>...
>Llamar a repr() no debe devolver str(self) ... Por lo tanto, repr()
>debe mostrar una tupla de tres valores: IntPart, FracPart, Precision.
pero esto, seguiendo tu definicion del constructor, no cumple con:
x == eval(repr(x))
verás que es un regla bastante comun en python. es muy practica.
>Que se pueda:
> - usar como clave en dict
> - usar como booleano
> - hacer un pickle
falta rigor en lo que propones. en python cualquier casi cosa puede
ser usada como clave en diccionarios.
deberías ser mas concreto deciendo algo como:
a, b son de tipo Money. hash(a) == hash(b) iif a == b
idem para bool y pickle.
>Que el redondeo sea el financiero ...
lo siento. no entiendo el dibujito. ;-)
suerte!
-Hernan
Más información sobre la lista de distribución Python-es