python修改内置字符串函数

时间:2015-07-30 08:07:26

标签: string python-2.7 split built-in

是否有可能在Python中修改或者 - 至少 - 拒绝执行内置函数?出于教育的目的,我需要确保字符串拆分不可用。

例如,我想要,如果打电话

'a,b,c'.split(',')

抛出异常或返回输入的字符串。

我想强迫某人编写该函数的自己版本。可能吗?
提前致谢!

1 个答案:

答案 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