<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def dfs_get_all_childs(self, root):
 """Recursively get all sons of this node :param root: node to get sons :type root: :return: sons :rtype: list """

        self.nodes[root]['dfs_loop_status'] = 'DFS_CHECKED'

        ret = set()
        # Me
        ret.add(root)
        # And my sons
        ret.update(self.nodes[root]['sons'])

        for child in self.nodes[root]['sons']:
            # I just don't care about already checked children
            if self.nodes[child]['dfs_loop_status'] == 'DFS_UNCHECKED':
                ret.update(self.dfs_get_all_childs(child))

        return list(ret)