On 2019-04-02 18:55, Stephen J. Turnbull wrote:
Rhodri James writes:
Steven d'Aprano writes:
> > (That's over a third of this admittedly incomplete list of prefixes.)
> >
> > I can think of at least one English suffix pair that clash: -ify, -fy.
And worse: is "tries" the third person present tense of "try" or is it
the plural of "trie"? Pure lexical manipulation can't tell you.
> You're beginning to persuade me that cut/trim methods/functions aren't a
> good idea :-)
I don't think I would go there yet (well, I started there, but...).
> So far we have two slightly dubious use-cases.
>
> 1. Stripping file extensions. Personally I find that treating filenames
> like filenames (i.e. using os.path or (nowadays) pathlib) results in me
> thinking more appropriately about what I'm doing.
Very much agree.
> 2. Stripping prefixes and suffixes to get to root words.
for suffix in english_suffixes:
root = word.cutsuffix(suffix)
if lookup_in_dictionary(root):
do_something_appropriate_with_each_root_found()
is surely more flexible and accurate than a hard-coded slice, and
significantly more readable than
for suffix in english_suffixes:
root = word[:-len(suffix)] if word.endswith(suffix) else word
if lookup_in_dictionary(root):
do_something_appropriate_with_each_root_found()
[snip]
The code above contains a subtle bug.
If suffix == '', then word.endswith(suffix) == True, and
word[:-len(suffix)] == word[:-0] == ''.
Each time I see someone do that, I see more evidence in support of
adding the method.
_______________________________________________
Python-ideas mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/