我不太理解Python模块中的导入和函数定义的可见性。
以下是一个简化版的例子:
from scapy.all import *
def getA():
return 0
def getB():
return getA() + 1
def getC():
code.interact(local=locals())
return 3
def main():
print getA()
print getB()
print getC()
exit()
if __name__ == '__main__':
main()
现在,一切都顺利进行,直到我到达函数getC
并出现了一个命令提示符,许多应该看到的内容不见了。
getA()
和getB()
不可见- 在导入中的Scapy也不可见
为什么会这样?我做错了什么?
locals()
有效的原因。谢谢! - Ricky Robinsoncode.interact(local=globals())
命令,所有本地定义都会丢失。有没有办法实现我在上面评论中提到的功能? - Ricky Robinsoncode.interact(local=dict(globals(), **locals()))
https://dev59.com/Ymw05IYBdhLWcg3wkik-#_aOeEYcBWogLw_1bHzZZ这行代码可以在当前命名空间中获取Python交互式控制台。 - Ricky Robinson