所以我们得有些措施去防范这些事情, 我们能做的大概也就下面几种方式:
1.在用户通知`main.py`时有新模块加入并且要求执行函数时, 先对模块的代码做检查, 不符合标准或者带有危险代码的拒绝加载....注: globals函数 是用来打印当前全局命名空间的函数, 同样, 也能通过修改这个函数返回的字典对应的key, 实现全局命名空间的修改.例如:
s = globals()
print s
s['a'...在上面的输出可以看到, 在删除前后, 通过print globals()可以看到全局命名空间确实已经被修改了, 因为test_var已经无法打印了, 触发了NameError, 这样的话, 就有办法能够限制全局命令空间了...是这个字典才对, 所以上面的代码要改成:
s = globals()
s['__builtins__']....它提供四种用处:
1.对是否是模块,框架,函数等进行类型检查。