# 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 binding`QQ=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!