String python修改内置字符串函数
在Python中是否可以修改或至少拒绝执行内置函数?出于教育目的,我需要确保字符串拆分不可用 例如,我想打电话String python修改内置字符串函数,string,python-2.7,split,built-in,String,Python 2.7,Split,Built In,在Python中是否可以修改或至少拒绝执行内置函数?出于教育目的,我需要确保字符串拆分不可用 例如,我想打电话 'a,b,c'.split(',') 引发异常或返回已输入的字符串 我想强制某人编写该函数的自己版本。可能吗? 提前谢谢 内置类型(在您的例子中是str)和方法不能被猴子补丁,因为它们是用C实现的(对于cpython实现) 但是,您可以定义子类并重新定义方法: >>> class Mystr(str): ... def split(self, *args):
'a,b,c'.split(',')
引发异常或返回已输入的字符串
我想强制某人编写该函数的自己版本。可能吗?
提前谢谢 内置类型(在您的例子中是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
类Mystr(str):
... def拆分(自,*参数):
... 引发异常(“未定义拆分”)
...
>>>Mystr(“测试”).split(“,”)
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“”,第3行,拆分
例外:未定义拆分
也许
def split(self,*args):
这样它就可以接受默认的无参数了?否则,它会抛出一个关于参数数量的异常。例如,谢谢你,也许我必须使用它!