Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revision | |||
work:2024-49 [2024/12/14 01:45] – [Pesquisa] magsilva | work:2024-49 [2024/12/14 01:49] (current) – magsilva | ||
---|---|---|---|
Line 8: | Line 8: | ||
===== Pesquisa ===== | ===== Pesquisa ===== | ||
* Correção automática de programas | * Correção automática de programas | ||
- | * Um problema que tive recentemente foi quanto a redefinição de módulos e funções da biblioteca básica do Python. | + | * Um problema que tive recentemente foi quanto a redefinição de módulos |
* Normalmente, | * Normalmente, | ||
* Mais especificamente, | * Mais especificamente, | ||
Line 21: | Line 21: | ||
* As classes a serem utilizadas estão definidas na variável '' | * As classes a serem utilizadas estão definidas na variável '' | ||
* Entendido isso, bastaria criar uma nova classe Finder e colocá-la no início do caminho. | * Entendido isso, bastaria criar uma nova classe Finder e colocá-la no início do caminho. | ||
- | * Bom, nem tudo são flores. Por algum motivo muito estranho, **alguns** módulos builtins do Python não podem ser sobreescritos por esse mecanismo. Mais especificamente o módulo '' | + | * Bom, nem tudo são flores. Por algum motivo muito estranho, **alguns** módulos builtins do Python não podem ser sobreescritos por esse mecanismo. Mais especificamente o módulo '' |
* Minha primeira abordagem foi alterar o código da importação para que não ocorresse mais esse impedimento de sobreescrever elementos builtins. Isso funcionou! Colocarei o código a seguir, que sobreescreve o '' | * Minha primeira abordagem foi alterar o código da importação para que não ocorresse mais esse impedimento de sobreescrever elementos builtins. Isso funcionou! Colocarei o código a seguir, que sobreescreve o '' | ||
<code language=" | <code language=" | ||
Line 747: | Line 747: | ||
sys.meta_path.insert(0, | sys.meta_path.insert(0, | ||
del(sys.modules[" | del(sys.modules[" | ||
- | time = __import__(" | + | time = __import__(" |
print(1731593707.2131279) | print(1731593707.2131279) | ||
print(time.time()) | print(time.time()) | ||
</ | </ | ||
+ | * Bom, em condições normais isso deveria funcionar. Agora já tenho um bom mecanismo para sobreescrever os módulos e suas funções em tempo de execução! |