def METHOD_NAME(self):
    def evaluate(param, early_stopping_rounds, use_first_metric_only):
        eval_type = param.eval_type
        metric_list = param.metrics
        first_metric = None
        if early_stopping_rounds and use_first_metric_only and len(metric_list) != 0:
            single_metric_list = None
            if eval_type == consts.BINARY:
                single_metric_list = consts.BINARY_SINGLE_VALUE_METRIC
            elif eval_type == consts.REGRESSION:
                single_metric_list = consts.REGRESSION_SINGLE_VALUE_METRICS
            elif eval_type == consts.MULTY:
                single_metric_list = consts.MULTI_SINGLE_VALUE_METRIC
            for metric in metric_list:
                if metric in single_metric_list:
                    first_metric = metric
                    break
        return first_metric
    param_0 = EvaluateParam(metrics=['roc', 'lift', 'ks', 'auc', 'gain'], eval_type='binary')
    param_1 = EvaluateParam(metrics=['acc', 'precision', 'auc'], eval_type='binary')
    param_2 = EvaluateParam(metrics=['acc', 'precision', 'gain', 'recall', 'lift'], eval_type='binary')
    param_3 = EvaluateParam(metrics=['acc', 'precision', 'gain', 'auc', 'recall'], eval_type='multi')
    print(evaluate(param_0, 10, True))
    print(evaluate(param_1, 10, True))
    print(evaluate(param_2, 10, True))
    print(evaluate(param_3, 10, True))