如何在Python中测试是否已调用内置函数

问题描述

我正在开设一门使用Sage和Python的计算机编程课程,但是我自己并不是Python方面的专家。 (FYI Sage是Python 3的替代内核,它具有许多用于编译抽象代数的有效软件包)。我经常发现自己想分配学生编程一些Sage已经可以内置到内核的任务,并且我需要确保他们不仅仅是在调用内置功能。我正在使用一个名为nbgrader的程序,该程序运行其代码并断言有关它的各种事实以测试其是否正确计算,并且通常可以运行该函数上可以想象到的任何python命令,然后测试一系列断言命令,如果它们都通过然后他们就完全可以解决这个问题了。

我试图遵循一些教程,这些教程让我删除了内置函数,或者使用unittest和嘲笑来颠覆它。但是,我得到如下错误can't set attributes of built-in/extension type 'sage.structure.element.Matrix当我尝试删除内置矩阵乘法功能时。当我尝试模拟它时出现类似的错误我有什么聪明的方法可以删除或以其他方式破坏内置函数,以便在他们尝试调用函数时抛出错误?否则,我可以让python将所有函数调用的日志打印到字符串中吗,例如以便sage.structure.element.Matrix.__mult__如果在某些示例上运行时其功能使用内置的矩阵乘法功能,则会在此字符串中显示

谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)