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