Comment #1 on issue 1474 by ondrej.certik: Subs broken on sub classes of
Symbol using sympy 0.6.4 on linux
http://code.google.com/p/sympy/issues/detail?id=1474
It's because use use .subs('B', 'X'), what happens is that sympify() gets
called and
sympify doesn't know about your Mysymbol, so sympify('B') is just
Symbol('B'), which
is different to your Mysymbol(). To do what you want, just use .subs(B, X),
where B
and X are instances of the correct Symbols. Like in the session below:
In [1]: import sympy
In [2]: class Mysymbol(sympy.Symbol):
...: pass
...:
In [3]: (sympy.Symbol('A')*sympy.Symbol('B')).subs('B','X')
Out[3]: A*X
In [4]: (sympy.Symbol('A')*Mysymbol('B')).subs('B','X')
Out[4]: A*B
In [5]: (sympy.Symbol('A')*Mysymbol('B')).subs(Mysymbol('B'),'X')
Out[5]: A*X
As to the order of things, it is done by the Printer and since
multiplication is
commutative, it doesn't matter (you can write your own printer to print
things in the
way you like, I can help with that too if this is what you want). Or you
can use
noncommutative symbols if this is what you need.
Let me know if there is any other problem, or if we can close this issue.
--
You received this message because you are listed in the owner
or CC fields of this issue, or because you starred this issue.
You may adjust your issue notification preferences at:
http://code.google.com/hosting/settings
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"sympy-issues" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/sympy-issues?hl=en
-~----------~----~----~----~------~----~------~--~---