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

如何将模块“重新导入”到python,然后在导入后更改代码

邵奇
2023-03-14
问题内容

我有一个 foo.py

def foo():
    print "test"

在IPython中,我使用:

In [6]:  import foo
In [7]:  foo.foo()
test

然后,我将其更改foo()为:

def foo():
    print "test changed"

在IPython中,调用的结果仍然是test

In [10]:  import foo
In [11]:  foo.foo()
test

然后我用:

In [15]: del foo
In [16]:  import foo
In [17]:  foo.foo()
test

我删除了foo.pyc同一个文件夹中foo.py存在的文件夹,但仍然没有运气。

我可以在运行时重新导入更新的代码吗?


问题答案:

对于Python 2.x

reload(foo)

对于Python 3.x

import importlib
import foo #import the module here, so that it can be reloaded.
importlib.reload(foo)


 类似资料:
  • 我注意到一些看似奇怪的行为,当试图以不同的方式导入名为rmod2的python模块时。如果我从rmod2.py文件所在的目录启动python,它可以正常工作。但是,如果我将文件移动到其他模块所在的另一个文件夹,它不再按预期工作。模块/包文件夹 /usr/lib/pymodules/python2.7,它也包含在sys.path.中,所以我创建了文件夹 /usr/lib/pymodules/pyth

  • 我将tensorflow与Python2.7结合使用。但是,在将Python2.7.10更新为2.7.13之后,我在tensorflow中遇到了一个导入错误 输出从 来自哪个python的输出: 我相信这个路径在python更新后改变了,但不确定。一个解决方案可能是降级python,但这似乎是一个糟糕的解决方案?当我在一个团队工作时,我想避免重新安装Tensorflow,因为最终会有不同的版本,但

  • 我是新的Python,我已经安装在C:\ INFO2013-07-08 08:15:47,197server.py:593]默认:"GET/HTTP/1.1"500-INFO2013-07-08 08:28:22,289api_server.py:509]应用所有挂起的事务并保存数据存储INFO2013-07-08 08:28:22,289api_server.py:512]保存搜索索引2013-

  • 问题内容: 我知道可以做到,但是我不记得怎么做。 如何在python中重新导入模块?场景如下:我以交互方式导入模块并对其进行修改,但随后遇到错误。我修复了.py文件中的错误,然后想重新导入固定模块而不退出python。我该怎么做 ? 问题答案: 这应该工作: 来自Python文档 重新加载先前导入的模块。该参数必须是模块对象,因此它必须已经成功导入。如果您已使用外部编辑器编辑了模块源文件,并且想在

  • 我在让sikuli python单元测试工作时遇到了麻烦,希望能得到一些帮助。我在网上到处搜索,但是没有任何有用的东西。我的python知识非常有限,我想这没有什么帮助... 我用的是win7 32,sikuli 1.0 rc3 (r905),python 2.7.3 我正在尝试通过python运行sikuli单元测试(不使用命令行,只是作为一个python脚本来运行python gui)。除了别

  • 当我开发一个Android应用程序时,我有一个作为单独的Android Studio项目创建的库,可以通过将它插入新项目来使用它。我通过选择“文件|新建|导入模块…”插入库选项 问题是在导入之后,Gradle创建了我的库的硬拷贝。如果我在主外部项目中更改库代码,则使用库的项目中的代码将不会得到更新。 我如何拥有一个库并在多个项目中共享它?我需要在一个地方更改库,然后使用它的所有其他项目都得到更新。