是否有可能在Python中修改或者 - 至少 - 拒绝执行内置函数?出于教育的目的,我需要确保字符串拆分不可用。
例如,我想要,如果打电话
'a,b,c'.split(',')
抛出异常或返回输入的字符串。
我想强迫某人编写该函数的自己版本。可能吗?
提前致谢!
答案 0 :(得分:3)
内置类型(在你的情况下为str)和方法不能进行猴子修补,因为它们是用C实现的(用于cpython实现)。
但是,您可以定义子类并重新定义方法:
>>> class Mystr(str):
... def split(self, *args):
... raise Exception("Split is not defined")
...
>>> Mystr("test").split(",")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 3, in split
Exception: Split is not defined