English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Método de Carga Dinâmica em Python

As linguagens de script têm uma vantagem, que é a carga dinâmica. A linguagem lua tem essa vantagem, e o python também possui essa característica. De uma maneira simples, se o desenvolvedor descobrir que seu código tem bugs, ele pode substituir dinamicamente os módulos sem precisar fechar o código original. O método de substituição geralmente é feito com reload.

1O princípio básico de reload

reload realiza duas ações principais: deleta o módulo original e adiciona um novo módulo

2O código equivalente a reload

del sys.modules[module_name]
__import__(module_name)

3O que需要注意在使用reload时

3.1 O parâmetro de entrada de reload é module, não uma string, ou seja

import sys
module = sys.modules[module_name]

3.2 O arquivo recarregado é apenas o arquivo __init__.py do módulo correspondente, se for outro arquivo, não terá efeito

3.3 Se for um arquivo em outro diretório, precisará recarregar separadamente, por exemplo

import sys
del sys.modules['module_name:sub_file']
__import__('module_name:sub_file')

ou

reload(sys.modules['module_name:sub_file'])

Resumo

O que está acima é o método de implementação dinâmica de carregamento de módulos介绍的 pelo editor para vocês, esperamos que ajude. Se você tiver alguma dúvida, por favor, deixe um comentário, o editor responderá a tempo. Agradecemos também o apoio ao Tutorial Yell!

Declaração: o conteúdo deste artigo é extraído da Internet, pertence ao respectivo detentor dos direitos autorais, é contribuído e carregado voluntariamente pelos usuários da Internet, este site não possui direitos de propriedade, não foi editado manualmente e não assume responsabilidade legal relevante. Se você encontrar conteúdo suspeito de violação de direitos autorais, por favor, envie um e-mail para: notice#oldtoolbag.com (ao enviar e-mail, substitua # por @ para denunciar, forneça provas pertinentes e, uma vez confirmada, o site deletará imediatamente o conteúdo suspeito de violação de direitos autorais).

Você também pode gostar