função Recursiva retorna nenhum no python resolvido
Ao tentar retornar um caminho em uma função recursiva, um problema pode surgir onde "nenhum" é retornado em vez. Isso pode ser resolvido, garantindo que o resultado recursivo seja retornado. Aqui está uma explicação do porquê e como corrigi -lo:
no código fornecido:
def get_path(dictionary, rqfile, prefix=[]): for filename in dictionary.keys(): path = prefix [filename] if not isinstance(dictionary[filename], dict): if rqfile in str(os.path.join(*path)): return str(os.path.join(*path)) else: get_path(directory[filename], rqfile, path)
A chamada recursiva termina com get_path (diretório [nome do arquivo], rqfile, caminho) sem retorno. Isso significa que, se o rqfile não estiver em str (os.path.join (*caminho)), a função termina sem retornar explicitamente nada, resultando em um valor de retorno padrão de nenhum. Retornar get_path (diretório [nome do arquivo], rqfile, caminho)
ao retornar sempre no final da função, se é ou não uma chamada recursiva, garantimos que um retorno seja explicitamente dado, impedindo que não seja devolvido. Deve retornar nos dois casos: quando o rqfile está no caminho e quando não é, e não há necessidade de um ramo para acabar com a função.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3