#!/usr/bin/env python # encoding: utf-8 from .operator import Operator, save_mainOp class Div(Operator): r""" The operator / >>> div = Div() >>> div / >>> div(1, 2) < Fraction 1 / 2> >>> div.__tex__('1','2') '\\frac{ 1 }{ 2 }' >>> div.__tex__('-1','2') '\\frac{ -1 }{ 2 }' >>> div.__tex__('1','-2') '\\frac{ 1 }{ -2 }' >>> div.__txt__('1','2') '1 / 2' >>> div.__txt__('-1','2') '-1 / 2' >>> div.__txt__('1','-2') '1 / ( -2 )' """ _CARACT = { "operator": "/", "name": "div", "priority": 5, "arity": 2, "txt": "{op1} / {op2}", "tex": "\\frac{{ {op1} }}{{ {op2} }}", } def __init__(self): """ Initiate Div Operator """ super(Div, self).__init__(**self._CARACT) def __call__(self, op1, op2): if op2 == 1: return op1 else: from ..fraction import Fraction return Fraction(op1, op2) def __tex__(self, *args): # Pas besoin de parenthèses en plus pour \frac replacement = {"op"+str(i+1): op for (i, op) in enumerate(args)} ans = self.tex.format(**replacement) ans = save_mainOp(ans, self) return ans # ----------------------------- # Reglages pour 'vim' # vim:set autoindent expandtab tabstop=4 shiftwidth=4: # cursor: 16 del