get short name for QQ, RDF, AA etc
I wonder whether there is a way to get back the short name of the function of the various rings and fields like QQ, RDF, AA, RLF, RR, etc. as a string.
For example
sage: a=QQ
sage: str(a)
'Rational Field'
But I am looking for something like:
sage: function_I_want(a)
'QQ'
I guess I could predefine a dictionary like this:
shortnames={eval(name):name for name in ['QQ', 'RDF', 'AA', 'RLF', 'RR']}
and then have a function
def function_I_want(a):
return shortnames[a]
But this seems a bit clumsy. Is there a better way to do this; or is there somewhere in the sage code such a dictionary already defined?
The reason I am thinking about this is the following tiny bug: https://trac.sagemath.org/ticket/22132
The name
QQ
is not an intrinsic property of the field of rational numbers. It's just that for convenience, the default toplevel environment has the bindingQQ=RationalField()
. You cannot really let the Rational Field depend on it. For the bug you're referring to: You cannot assume rings have a "short, globally defined name". There are infinitely many possible finite fields and number fields already, in different representations.thanks for the explanation!