I was just saying that using the bool return value as an index is a bit obscure, compared to using it as a condition in an if statement. But even in the more common use, returning the matched string is still a chance in behavior. On Mon, Aug 9, 2021, 10:13 AM Chris Angelico <rosuav@gmail.com> wrote:
On Tue, Aug 10, 2021 at 12:03 AM Simão Afonso <simao.afonso@powertools-tech.com> wrote:
On 2021-08-09 23:57:42, Chris Angelico wrote:
On Mon, Aug 9, 2021 at 10:32 PM Samuel Freilich <sfreilich@google.com>
wrote:
Even without it being used in as complicated a way as that it's still not backward compatible because of the trivial case, as foo.endswith("") is True.
I was talking specifically about the original, which can be depended upon to return True or False. Changing the return value would break anything that depends on that.
Not sure what you're referring to.
I think this is the problem:
"str".endswith("") is True True "" is True <stdin>:1: SyntaxWarning: "is" with a literal. Did you mean "=="? False
Even if you use the return value as a bool, it will flip the result.
Yep, that's also a problem, but I don't understand why my comment about "can be used eg for indexing" was being quoted for context there. I was talking about how you could do something like this:
protocol = ("ws:", "wss:")[url.startswith("https:")]
If the return value changes, this breaks.
ChrisA _______________________________________________ Python-ideas mailing list -- python-ideas@python.org To unsubscribe send an email to python-ideas-leave@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/EMTRLS... Code of Conduct: http://python.org/psf/codeofconduct/