class Int(object):

    def __init__(self, init_val=0):
        self.val = init_val
obj = Int(42)
print(Int, type(Int), obj, type(obj))
Does Python assume a symbol is a type before trying to see if it is a function?