我正在与以非OO方式编写的python 2.x API进行交互,它使用模块全局范围来处理一些内部状态驱动的东西.它在不再是单例的上下文中是必需的,修改原始代码(不是我们的代码)不是一种选择.
如果没有使用单独解释器的子进程运行,有没有什么方法可以关闭模块并与模块的多个实例交互(从而将其视为对象)?
我需要使用该模块来驱动2种不同的设置 - 它在内部似乎无法使用.
免责声明:请不要这样做.请在非常奇怪的情况下执行此操作 - 并尝试在执行此操作之前以其他方式更改情况.我这样做是为了应对在询问时无法改变的奇怪代码 - 不提供扩展更奇怪代码的方法.
phi*_*hag 13
只需从sys.modules以下位置删除模块:
>>> import sys
>>> import mod as m1
>>> m1.x = 1
>>> del sys.modules['mod']
>>> import mod as m2
>>> m2.x = 2
>>> m1.x
1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2307 次 |
| 最近记录: |