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

时间:2014-02-07 01:31:09

标签: 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)>

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

感谢。

1 个答案:

答案 0 :(得分:3)

它可能有效,如果“内容包含模块”表示.py文件,并且第一个import module可以创建module.pyc文件(通常可以,但是对于例如,只读文件系统会阻止它)。如果您不删除该.pyc文件,则reload(module)可以从中加载。

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

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