Personally, I'd want to see mutator methods return `self` so you can do more than one mutation in a statement, but the convention is that all the mutator methods return `None`.
On Thu, Jun 25, 2020, 10:28 AM Ben Avrahami <avrahami....@gmail.com> wrote: > Hey all, > Often I've found this kind of code: > > seen = set() > for i in iterable: > if i in seen: > ... # do something in case of duplicates > else: > seen.add(i) > ... # do something in case of first visit > > This kind of code appears whenever one needs to check for duplicates in > case of a user-submitted iterable, or when we loop over a recursive > iteration that may involve cycles (graph search or the like). This code > could be improved if one could ensure an item is in the set, and get > whether it was there before in one operation. This may seem overly > specific, but dicts do do this: > > seen = {} > for i in iterable: > if seen.set_default(i, some_value) is not None: > ... # do something in case of duplicates > else: > ... # do something in case of first visit > > I think the set type would benefit greatly from its add method having a > return value. set.add would return True if the item was already in the set > prior to insertion, and False otherwise. > > Looking at the Cpython code, the set_add_entry already detects existing > entries, adding a return value would require no additional complexity. > > Any thoughts? > _______________________________________________ > Python-ideas mailing list -- python-ideas@python.org > To unsubscribe send an email to python-ideas-le...@python.org > https://mail.python.org/mailman3/lists/python-ideas.python.org/ > Message archived at > https://mail.python.org/archives/list/python-ideas@python.org/message/6WYNYNG5J5HBD3PA7PW75RP4PMLOMH4C/ > Code of Conduct: http://python.org/psf/codeofconduct/ >
_______________________________________________ Python-ideas mailing list -- python-ideas@python.org To unsubscribe send an email to python-ideas-le...@python.org https://mail.python.org/mailman3/lists/python-ideas.python.org/ Message archived at https://mail.python.org/archives/list/python-ideas@python.org/message/GQ3GYFCYMQSXRM2OPJ6ZRAKS4IYNETMG/ Code of Conduct: http://python.org/psf/codeofconduct/