拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
好吧~~我鑽牛角尖了 如果只是函數對比使用 == 就行了 但我這邊情況有點特殊 所以只能比名字了
你可以研究下pysandbox的源碼
pysandbox
對於使用者定義函數,比較函數的 __code__ 屬性(Python 3)是否在授權的清單裡即可。對於內建函數,既然你要限制,不至於允許使用者載入C函式庫的吧?那麼比較函數位址就可以了。
__code__
不過別以為這樣就可以高枕無憂了,繞過應該不難的。例如 sort 函數裡邊就接受一個當函數的參數。
好吧~~我鑽牛角尖了
如果只是函數對比使用 == 就行了
但我這邊情況有點特殊
所以只能比名字了
你可以研究下
pysandbox
的源碼對於使用者定義函數,比較函數的
__code__
屬性(Python 3)是否在授權的清單裡即可。對於內建函數,既然你要限制,不至於允許使用者載入C函式庫的吧?那麼比較函數位址就可以了。不過別以為這樣就可以高枕無憂了,繞過應該不難的。例如 sort 函數裡邊就接受一個當函數的參數。