代码:
from os import path
path.__dict__['os'].system("/bin/sh")
允许我在python中创建一个shell。我很好奇为什么os模块可以通过路径类访问,当我没有显式导入整个os模块时。我已经阅读了一些关于 dict 的文章,以及它如何将变量,方法存储到类等中。但是我没有发现它会保留它来自的模块。
答案 0 :(得分:2)
它与__dict__
没有任何特别之处;你也可以只用path.os
得到它。 os.path
模块导入os
模块。这意味着可以从os
访问名称os.path
。只要模块执行import foo
,您就可以通过该模块访问foo
,就像您访问模块中的任何其他内容一样。模块只是普通对象,导入的模块可以像类或函数或模块中的任何其他东西一样访问。