Make Dummy.__new__() inherit from Symbol.__new__()
authorVivien Maisonneuve <v.maisonneuve@gmail.com>
Tue, 19 Aug 2014 12:15:56 +0000 (14:15 +0200)
committerVivien Maisonneuve <v.maisonneuve@gmail.com>
Tue, 19 Aug 2014 12:35:41 +0000 (14:35 +0200)
linpy/linexprs.py

index b97f048..d62c671 100644 (file)
@@ -463,12 +463,15 @@ class Symbol(LinExpr):
             raise SyntaxError('invalid syntax')
         self = object().__new__(cls)
         self._name = name
-        self._coefficients = {self: Fraction(1)}
         self._constant = Fraction(0)
         self._symbols = (self,)
         self._dimension = 1
         return self
 
+    @property
+    def _coefficients(self):
+        return {self: Fraction(1)}
+
     @property
     def name(self):
         """
@@ -553,15 +556,8 @@ class Dummy(Symbol):
         """
         if name is None:
             name = 'Dummy_{}'.format(Dummy._count)
-        elif not isinstance(name, str):
-            raise TypeError('name must be a string')
-        self = object().__new__(cls)
+        self = super().__new__(cls, name)
         self._index = Dummy._count
-        self._name = name.strip()
-        self._coefficients = {self: Fraction(1)}
-        self._constant = Fraction(0)
-        self._symbols = (self,)
-        self._dimension = 1
         Dummy._count += 1
         return self