Python 比较两个函数是否一致

如题,我应该怎么比较函数是否一致?
因为我要做一个函数黑名单的功能,不被授权的函数不允许调用。
仅仅通过函数名去验证不行,因为有的函数可能同名,只是所属类不一样而已

阅读 6.5k
3 个回答

好吧~~我钻牛角尖了
如果仅仅是函数对比使用 == 就行了
但是我这边情况有点特殊
所以只能比名字了

你可以研究下pysandbox的源码

对于用户定义函数,比较函数的 __code__ 属性(Python 3)是否在许可的列表里即可。对于内建函数,既然你要限制,不至于允许用户加载C库的吧?那么比较函数地址就可以了。

不过别以为这样就可以高枕无忧了,绕过应该不难的。比如 sort 函数里边就接受一个作为函数的参数。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题