当前位置: 首页 > 面试题库 >

Python:重新加载用'from X import Y'导入的组件Y?

梁鸣
2023-03-14
问题内容

在Python中,一旦我在解释器会话中使用导入了模块X import X,并且模块在外部进行了更改,就可以使用来重新加载该模块reload(X)。然后,这些更改将在我的解释器会话中可用。

我想知道当我使用模块从模块X导入组件Y时是否也可行from X import Y

该语句reload Y不起作用,因为Y本身不是模块,而是模块内部的仅组件(在这种情况下为类)。

是否有可能在不离开解释器会话(或导入整个模块)的情况下重新加载模块的各个组件?

编辑:

为了澄清起见,问题是关于从 模块X* 导入 类或函数Y 并在更改时重新加载,而不是从包X重新加载模块Y。 *


问题答案:

如果Y是一个模块(而X是一个包)reload(Y)就可以了-否则,您将明白为什么优秀的Python样式指南(例如,我的老板的)会说 除了* 模块
之外不要 导入任何东西(这是许多重要原因之一) -但是人们仍然继续直接导入函数和类,无论我解释多少,这 都不
是个好主意;-)。

***



 类似资料:
  • 问题内容: 在这个有用的问答中,我看到了一个可以使用的问题,或者在Python 3中,。 我的问题是,如果我说要进口怎么办?那我使用的时候就不用指了。你们会因为把整个模块扔到全局名称空间中而对我大喊大叫吗?:) 问题答案: 我同意 “一般不要这样做”的 共识,但是… 正确答案是:

  • 问题内容: 这是一个非常基本的问题-但我无法通过在线搜索找到答案。 我正在使用python控制ArcGIS,并且有一个简单的python脚本,该脚本调用了一些预先编写的代码。 但是,当我对预写代码进行更改时,它似乎没有导致任何更改。我导入了此模块,并尝试刷新它,但是没有任何反应。 我什至将它调用的文件移到了另一个位置,脚本仍然可以正常工作。昨天我做的一件事是我将所有python文件都添加到sys路

  • 我有一个关于Vuejs和Vue路由器的项目。当用户登录系统时,服务器返回一个带有令牌、用户名和名字的Json文件,该文件存储在localstorage中,以便在以下请求中使用。第一个名称在布局中用于在导航栏中显示欢迎消息。注销后,localstorage被清除,问题就在这里,当其他用户在消息welcome not reload中使用新的名字付费时。

  • 我有几个路线,每个路线装载3个组件。所有管线上的两个组件都相同。当我在这些路由之间移动时,我希望传递新数据,在组件的某个初始化事件上,我希望填充该组件的数据,以便它反映在UI上。我还想重新触发正在加载的组件的引导动画。我该怎么做呢。因为现在,我不知道在组件的生命周期中,我将在哪里获取数据,并使用这些新数据重新提交组件。具体来说,在myapps/1和/newapp/I中有一个主视图组件和一个侧栏组件

  • 问题内容: 我希望对我在Spring中涉及到属性文件的问题有所帮助。所以我的设置是这样的: opto-mapping.properties –该文件位于我的src文件夹中,其中包含针对我的优化资源的翻译,如下所示: 每次运行“优化”构建时,都会更新此属性文件。然后我用 将属性文件导入所需的jsp中。然后通过使用以下内容引用内容: 除了属性文件需要重新启动tomcat重启外,所有这些工作都很漂亮。我

  • 问题内容: 我有一台运行时间较长的Python服务器,并且希望能够在不重新启动服务器的情况下升级服务。最好的方法是什么? 问题答案: 你可以使用reload内置函数重新加载已导入的模块: 在Python 3中,已移至imp模块。在3.4中,不推荐使用importlib,而在中添加了。当定位到3或更高版本时,在调用reload或导入时参考相应的模块。 我认为这就是你想要的。诸如Django开发服务器