コード例 #1
0
    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)