是否可以在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)>
这样做的目的是基本上使模块对用户“不可见”。我知道,如果用户真的想要它,他可以,但这只是一种威慑。我也知道这根本不可取,但有可能吗?
感谢。
答案 0 :(得分:3)
它可能有效,如果“内容包含模块”表示.py
文件,并且第一个import module
可以创建module.pyc
文件(通常可以,但是对于例如,只读文件系统会阻止它)。如果您不删除该.pyc
文件,则reload(module)
可以从中加载。
如果稍后在包含路径中找到另一个module.py
,则从一个位置删除文件会导致reload
从另一个位置加载。
如果删除路径中所有与module
相关的文件,则无法重新加载,因为重新加载意味着“从包含路径加载它”。