【问题标题】:Real-life module reloading in Python?在 Python 中重新加载现实生活中的模块?
【发布时间】:2018-01-12 18:28:02
【问题描述】:

我正在阅读一本关于 Python 的书,该书在模块重新加载上花费了相当长的时间,但没有很好地解释它什么时候有用。

因此,我想知道,当这种技术变得方便时,有哪些现实生活中的例子?

也就是说,我了解重新加载的作用。我正在尝试了解如何在现实世界中使用它。

编辑:

我并不是说这种技术没有用。相反,我正在尝试更多地了解它的应用,因为它看起来很酷。

另外,我认为将此问题标记为重复的人没有花时间实际阅读该问题以及它与建议的重复问题有何不同。 我不是在问如何在 Python 中重新加载模块。我已经知道该怎么做。我在问为什么要在现实生活中重新加载 Python 中的模块。这些问题的性质存在巨大差异。

【问题讨论】:

  • 显然这个人需要它:stackoverflow.com/questions/437589/…
  • 我的意思是使用from imp import reload 并执行reload(module_name) 之类的操作
  • @MadPhysicist 是的,我知道。我才意识到这一点。我(错误地)以为你在问this question
  • @ChristianDean 没问题。
  • 问题是关于为什么 进行重新加载,而不是如何 进行重新加载。我看不出它是如何重复的。我建议重新打开它。

标签: python python-3.x module reload


【解决方案1】:

模块重新加载(也称为“热插拔”)通常用于长时间运行的系统,例如电话交换机软件,这些系统无法关闭以进行维护,而不会造成代价高昂的服务中断。这样的系统是分段升级的,一次一个模块。例如,Erlang 在实现级别本机支持热交换。

Python 系统很少长时间运行。在 Python 中重新加载现实生活中的模块似乎并不重要。

编辑:正如@Aaron 建议的那样,在某些 Python IDE 中使用模块重新加载来促进模块开发。

【讨论】:

  • 一些 IDE (spyder) 在其 shell 中提供模块重新加载机制,以使开发这些模块更容易。
  • @Aaron True。我将“现实生活”解释为“工业用途”。如果这包括 IDE,人们可能会争论不休。
  • 这是一个过于简单化,有点狭隘的说法。重新加载模块有很多理由 Django 是需要它的长期运行的 Web 服务器的一个极好的例子。有关详细信息,请参阅重复的答案
【解决方案2】:

作为DYZ答案的附录,我在交互式Python解释器中分析大数据时使用模块重新加载。

数据的加载和预处理需要一些时间,我更喜欢将它们保存在内存中(顺便说一句,在模块中),而不是每次更改模块中的某些内容时都重新启动解释器。

【讨论】:

    猜你喜欢
    • 2012-10-19
    • 2015-02-07
    • 2013-05-16
    • 1970-01-01
    • 1970-01-01
    • 2011-09-08
    • 2012-05-20
    • 2012-01-27
    • 2017-07-25
    相关资源
    最近更新 更多