gpt4 book ai didi

python - 为什么在切换到 python3 时从 python 内置函数中删除了重新加载?

转载 作者:太空狗 更新时间:2023-10-29 21:03:07 26 4
gpt4 key购买 nike

我最近从 python 2 切换到 python 3。Python 3 documentation内容如下:“删除了 reload()。使用 imp.reload()”,但并没有真正说明原因。

This问题描述了它现在在 python 3 中是如何完成的。有谁知道为什么它已从内置插件中删除并且现在需要 impimportlib 重新加载?在使用交互式提示构建程序时测试程序时,默认情况下在此处重新加载非常方便。显然我可以通过做类似的事情来取回它

from imp import reload

每次打开交互式提示测试代码时,它只是另一行代码。此更改背后的原因是什么?

最佳答案

reload() 作为 Python Regrets Guido 之一从内置函数中删除,用 Keynote address at OSCON 2002 表示(幻灯片 6)。参见 PEP 3100 - Miscellaneous Python 3.0 Plans其中列举了几个可以追溯到那次谈话的变化。

从幻灯片中我会说他希望使用 exec();这肯定涵盖了在编辑器中迭代开发一些代码并在交互式解释器中重新测试它的最常见用例。

然而,在讨论PEP 3121 - Extension Module Initialization and Finalization时Guido 很快发现他错过了函数:

Yes; I'm not certain whether module reloading continues to be supported in Py3k or not. If not, it should be removed from the PEP, if yes, it should be specified.

我已经缺少内置的 reload(),所以我认为应该保留它 以某种形式围绕。我希望某种形式的重新加载功能会 保持可用,也许在 imp 模块中的某个地方。

因此,简而言之,首先删除了 reload(),然后在遗漏时添加了 imp.reload()。无论如何,它真的不需要内置,我当然很少使用它。

在 Python 3.4 中 the function was movedimportlib.reload() .

关于python - 为什么在切换到 python3 时从 python 内置函数中删除了重新加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31234689/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com