1
longchisihai 2016-10-11 19:07:24 +08:00
建议不要这么做,你可以继承 str 类 然后添加自己的方法
修改内置的方法 不仅有风险 而且也是在给别人挖坑 |
2
WinterWu 2016-10-11 19:17:36 +08:00 via iPhone
你当然可以 hack ,但是非常非常不建议这样做。太危险,以后维护就是巨坑。所以描述下你的需求? 99.9%你完全不需要这样做。
|
3
ruoyu0088 2016-10-11 20:19:02 +08:00 1
可以直接往类的字典里面添加方法,由于内置类的字典被保护起来了,因此这里使用 gc 模块获得实际的字典。
https://gist.github.com/ruoyu0088/d385f3ca04583c481538751f50adc364 |
4
Cbdy 2016-10-11 20:30:14 +08:00 via Android
Python 不是开源的吗?
|
5
zjuhwc 2016-10-12 13:42:38 +08:00 1
http://stackoverflow.com/questions/192649/can-you-monkey-patch-methods-on-core-types-in-python ,
如果你用 string 模块,可以直接用赋值的方法改。但是 build-in 的类是不能改的,可以自己实现一个子类。 https://gist.github.com/befe026ebe699286964967e8915ac95d.git |
6
GeekGao 2016-10-19 18:07:53 +08:00
非 Hack ,可参考楼上的方法。
CPython 2.x Hack : 修改 split 方法: https://github.com/geekgao/python/blob/master/Objects/stringobject.c#L1529 ( ps:注意自行搞定引用计数) 注册自定义方法入口参照其他方法: https://github.com/geekgao/python/blob/master/Objects/stringobject.c#L3883 参考文档: https://docs.python.org/2/c-api/intro.html#objects-types-and-reference-counts |