If a variable with the name var_name exists in this function's variable list, \
                then that variable object is returned; else a new variable is created\
                with the given name and added to the variable list of this function\
                and returned back

        :returns: A variable which has the its name as var_name
        :rype: Variable

def get_variable(self, var_name):
        """
        If a variable with the name var_name exists in this function's variable list, \
                then that variable object is returned; else a new variable is created\
                with the given name and added to the variable list of this function\
                and returned back

        :returns: A variable which has the its name as var_name
        :rype: Variable
        """
        assert(isinstance(var_name, str))
        if isinstance(var_name, str):
            for var in self.variable_list:
                if var.name == var_name:
                    return var
            new_var = Variable(var_name)
            self.variable_list.append(new_var)
            return new_var