Currently, many classes in SymPy include Symbol in args to provide the 
names to their instances. An example for this is sympy.vector.CoordSys3D 
class.

Although this can be a clever way to do it, I think this is wierd - perhaps 
it's an abuse of using Symbol. As far as I know, SymPy's Symbol is a scalar 
whose operations, e.g. addition, integration, etc... are defined. When we 
say *"This 3D system's name is 'C'"*, we don't expect that this 'C' can be 
substituted, divided, or subject to any other operation. Then why use Symbol 
to denote it in the first place?

Not only this design is unnecessary, it actually raises error. Please refer 
to this issue page <https://github.com/sympy/sympy/issues/19300> for example

Although there can be many ways to circumvent this issue, I think the most 
simple way is to introduce String class, which wraps str and is a subclass 
of Atom. 

If there is any reason to use Symbol for this purpose that I overlooked, 
please leave a comment here. Thank you.

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sympy+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/1ce4ea17-af3e-4fc4-9870-013b4444f57a%40googlegroups.com.

Reply via email to