self._coefficients = {}
for symbol, coefficient in coefficients:
if isinstance(symbol, Symbol):
- symbol = str(symbol)
+ symbol = symbol.name
elif not isinstance(symbol, str):
raise TypeError('symbols must be strings or Symbol instances')
if isinstance(coefficient, Constant):
yield self.coefficient(symbol)
yield self.constant
- @property
- def symbol(self):
- raise ValueError('not a symbol: {}'.format(self))
-
def issymbol(self):
return False
def __new__(cls, name):
if isinstance(name, Symbol):
- name = name.symbol
+ name = name.name
elif not isinstance(name, str):
raise TypeError('name must be a string or a Symbol instance')
self = object().__new__(cls)
self._coefficients = {name: 1}
self._constant = 0
self._symbols = tuple(name)
- self._symbol = name
+ self._name = name
self._dimension = 1
return self
@property
- def symbol(self):
- return self._symbol
+ def name(self):
+ return self._name
def issymbol(self):
return True
def __repr__(self):
- return '{}({!r})'.format(self.__class__.__name__, self._symbol)
+ return '{}({!r})'.format(self.__class__.__name__, self._name)
def symbols(names):
if isinstance(names, str):