Code: Select all
from sympy import Symbol, symbols
x, y, z = symbols("x y z")
class _r(Symbol):
def __new__(self):
r = super().__new__(self, "r")
return r
def diff(self, var):
assert var in [x, y, z]
return 1 / self * var
r = _r()
Code: Select all
>>> r.diff(x)
x/r
Code: Select all
>>> r.diff(x).diff(x)
1/r
Code: Select all
>>> d = r.diff(x)
>>> type(d)
sympy.core.mul.Mul
>>> d.free_symbols
{r, x}
>>> for s in d.free_symbols:
>>> print(s, type(s))
r
x
Wie bringe ich das zum Laufen? Bin ich überhaupt auf dem richtigen Weg, wenn ich Symbol in eine Unterklasse unterteile?