How do you add a custom method to a built-in python datatype? For example, I'd like to implement one of the solutions from this question but be able to call it as follows:
>>> s = "A string with extra whitespace"
>>> print s.strip_inner()
>>> A string with extra whitespace
So how would I define a custom .strip_inner()
string method?
You can't. And you don't need to.
See Extending builtin classes in python for an alternative solution. Subclassing is the way to go here.
The built-in classes such as str
are implemented in C, so you can't manipulate them. What you can do, instead, is extend the str
class:
>>> class my_str(str):
... def strip_inner(self):
... return re.sub(r'\s{2,}', ' ', s)
...
>>> s = my_str("A string with extra whitespace")
>>> print s.strip_inner()
A string with extra whitespace
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With