def __init__(self, name, conversions=None, latex=None, mathml="", domain='complex'): """ EXAMPLES:: sage: from sage.symbolic.constants import Constant sage: p = Constant('p') sage: loads(dumps(p)) p """ self._conversions = conversions if conversions is not None else {} self._latex = latex if latex is not None else name self._mathml = mathml self._name = name self._domain = domain for system, value in self._conversions.items(): setattr(self, "_%s_" % system, partial(self._generic_interface, value)) setattr(self, "_%s_init_" % system, partial(self._generic_interface_init, value)) from sage.symbolic.constants_c import PynacConstant self._pynac = PynacConstant(self._name, self._latex, self._domain) self._serial = self._pynac.serial() constants_table[self._serial] = self constants_name_table[self._name] = self from sage.symbolic.pynac import register_symbol register_symbol(self.expression(), self._conversions)