I always thought
rstrip would simply match and strip whatever string it was passed to them. However, it turns out that's not how they work.
"Hello world".strip("hel") # Expected outcome: 'lo world' 'o world' # Actual outcome
rstrip actually do is to remove any of the specified characters until a non-matching character is encountered. So in the example above, the second
l still matches the provided set of chars and hence gets removed.
I guess most of the time I just got lucky and never stumbled on the actual behavior. But what I should have used in most of the cases is actually
removesuffix, as the docs suggest.
Today I learned.