Search code examples
pythonsasstring-formattingf-string

Python - Is there a shorthand for [eg]: print(f'type(var) = {type(var)}')


Is there a shorthand in Python for (e.g.) print(f'type(var) = {type(var)}'), without having to state the object in the text and the {.}?

The short answer may be "no", but I had to ask!

E.g. in SAS one may use &= to output a macro variable and its value to the log...

%let macrovar = foobar;  
%put &=macrovar;

which returns in the log: MACROVAR = foobar

This is my first question, and I found it difficult to search for an answer, so apologies if it's been asked and answered.


Solution

  • Indeed there is. As of python 3.8, you can simply type f'{type(var)=}', and you will get the output you desire:

    >>> x = {}
    >>> f'{x=}'
    'x={}'
    >>> f'{type(x)=}'
    "type(x)=<class 'dict'>"
    

    Further reading:

    1. The "What's New In Python 3.8" page
    2. The documentation for f-strings
    3. The discussion on BPO that led to this feature being implemented.