1

编码:

from os import path
path.__dict__['os'].system("/bin/sh")

允许我在 python 中制作一个 shell。我很好奇为什么在我没有显式导入整个os模块的情况下,可以通过path类访问os模块。我已经阅读了一些关于dict的文章,以及它如何将变量、方法、类等存储起来。但我没有发现它会保留它来自的模块。

4

1 回答 1

2

它与 ; 没有什么特别的关系__dict__;你也可以得到它path.osos.path模块导入os模块。这意味着该名称os可以从os.path. 任何时候一个模块import foo,您都可以foo通过该模块进行访问,就像您访问模块中的任何其他内容一样。模块只是普通的对象,导入的模块就像类或函数或模块中的任何其他内容一样可访问。

于 2013-10-09T02:42:07.817 回答