python - 是否可以在python中导入一个模块,然后将其删除,但仍然可以在程序中使用它?

标签 python module

是否可以在Python中执行以下操作?

伪代码:

<code to extract contents from a password-protected .zip file (includes module)>
<path to module>
import module
reload(module)
<delete extracted contents, including the imported module>
<program code (within it, use reload(module) to use the module)>

这样做的目的基本上是使该模块对用户“不可见”。我知道如果用户真的想得到它,他可以,但这更多的是一种威慑。我也知道这可能根本不可取,但是可能吗?

谢谢。

最佳答案

如果“内容包含模块”指的是 .py 文件,并且第一个 导入模块 可以创建 module.pyc,那么它可能会起作用 文件(通常可以,但例如只读文件系统会阻止它)。如果您不删除该 .pyc 文件,则 reload(module) 可以从中加载。

如果稍后在包含路径中找到另一个 module.py,则从一个位置删除这些文件将导致reload 从另一个位置加载它。

如果您删除路径中所有与 module 相关的文件,则无法重新加载它,因为重新加载的意思是“从包含路径加载此文件”。

关于python - 是否可以在python中导入一个模块,然后将其删除,但仍然可以在程序中使用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21617672/

相关文章:

python - 使用 python 点击​​ http url 获取 IOError

python - Pandas :我如何迭代两个格式完全相同的数据帧?

python - 在 Python 中捕获控制台输出

pandaboard 的 linux i2c 驱动程序

node.js - Node module.exports 像 this 关键字一样引用自己的函数?

JavaScript 模块

python - django:在 transaction.atomic() 内提交和提升

python - 初始化空的 Pandas 系列并有条件地添加到它

module - FORTRAN 95 : is it possible to share a module without sharing the source code?

vue.js - 命名空间的 Vuex 模块 getter 注册为数字而不是模块名称