<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def is_enable_action_dependent(self, hosts, services):
 """ Check if dependencies states match dependencies statuses This basically means that a dependency is in a bad state and it can explain this object state. :param hosts: hosts objects, used to get object in act_depend_of :type hosts: alignak.objects.host.Hosts :param services: services objects, used to get object in act_depend_of :type services: alignak.objects.service.Services :return: True if all dependencies matches the status, false otherwise :rtype: bool """

        # Use to know if notification is raise or not
        enable_action = False
        for (dep_id, status, _, _) in self.act_depend_of:
            if 'n' in status:
                enable_action = True
            else:
                if dep_id in hosts:
                    dep = hosts[dep_id]
                else:
                    dep = services[dep_id]
                p_is_down = False
                dep_match = [dep.is_state(stat) for stat in status]
                # check if the parent match a case, so he is down
                if True in dep_match:
                    p_is_down = True
                if not p_is_down:
                    enable_action = True
        return enable_action