Код: Выделить всё
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()
Код: Выделить всё
>>> r.diff(x)
x/r
Код: Выделить всё
>>> r.diff(x).diff(x)
1/r
Код: Выделить всё
>>> 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
Как заставить это работать? На правильном ли я пути, создав подкласс Symbol?
Подробнее здесь: https://stackoverflow.com/questions/793 ... -on-symbol
Мобильная версия