from typing import Any, Tuple class C1(object): pass class C2(C1): pass class C3(C1): pass _classes={ "a" : C2, "b" : C3 } def get(desc): # type: (Tuple[str, Any, ...]) -> C1 return _classes[desc[0]](*desc[1:])