拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
好吧~~我钻牛角尖了 如果仅仅是函数对比使用 == 就行了 但是我这边情况有点特殊 所以只能比名字了
你可以研究下pysandbox的源码
pysandbox
对于用户定义函数,比较函数的 __code__ 属性(Python 3)是否在许可的列表里即可。对于内建函数,既然你要限制,不至于允许用户加载C库的吧?那么比较函数地址就可以了。
__code__
不过别以为这样就可以高枕无忧了,绕过应该不难的。比如 sort 函数里边就接受一个作为函数的参数。
好吧~~我钻牛角尖了
如果仅仅是函数对比使用 == 就行了
但是我这边情况有点特殊
所以只能比名字了
你可以研究下
pysandbox
的源码对于用户定义函数,比较函数的
__code__
属性(Python 3)是否在许可的列表里即可。对于内建函数,既然你要限制,不至于允许用户加载C库的吧?那么比较函数地址就可以了。不过别以为这样就可以高枕无忧了,绕过应该不难的。比如 sort 函数里边就接受一个作为函数的参数。