def getname(exprresolver):
result = None<EOL>if not callable(exprresolver):<EOL><INDENT>raise TypeError('<STR_LIT>')<EOL><DEDENT>result = getattr(<EOL>exprresolver, __RESOLVER__, getattr(<EOL>exprresolver, '<STR_LIT>', getattr(<EOL>exprresolver.__class__, '<STR_LIT>'<EOL>)<EOL>)<EOL>)<EOL>return result<EOL>
Get expression resolver name.

    Expression resolver name is given by the attribute __resolver__.
    If not exist, then the it is given by the attribute __name__.
    Otherwise, given by the __class__.__name__ attribute.

    :raises: TypeError if exprresolver is not callable.