예제 #1
0
파일: terminos.py 프로젝트: foones/dharma
    def __init__(self, numero=None, pico=0, a=None, b=None, *args, **kwargs):
        "Representa un número inexacto con aritmética de intervalos."
        TerminoConstante.__init__(self, *args, **kwargs)

        if numero is not None:
            assert isinstance(numero, int) or \
                   isinstance(numero, long) or \
                   isinstance(numero, fractions.Fraction)
            assert a is None and b is None
            assert pico >= 0
            if not isinstance(numero, fractions.Fraction):
                numero = frac(numero, 1)
            if pico == 0:
                a, b = numero, numero
            elif numero >= 0:
                a, b = numero, numero + pico
            else:
                a, b = numero - pico, numero
        else:
            assert a is not None and b is not None
        self._a, self._b = a, b