It's a canonicalisation error. Steve Holden
On Fri, May 18, 2018 at 2:38 PM, Ivan Pozdeev via Python-Dev < python-dev@python.org> wrote: > On 18.05.2018 14:46, Steven D'Aprano wrote: > >> Stephan Houben noticed that Python apparently allows identifiers to be >> keywords, if you use Unicode "mathematical bold" letters. His >> explanation is that the identifier is normalised, but not until after >> keywords are checked for. So this works: >> >> class Spam: >> locals()['if'] = 1 >> >> >> Spam.𝐢𝐟 # U+1D422 U+1D41F >> # returns 1 >> >> >> Of course Spam.if fails with SyntaxError. >> >> Should this work? Is this a bug, a feature, or an accident of >> implementation we can ignore? >> > Voting for bug: > Either those identifiers should be considered equal, or they shouldn't. > They can't be considered "partially" equal. > >> >> >> > -- > Regards, > Ivan > > > _______________________________________________ > Python-Dev mailing list > Python-Dev@python.org > https://mail.python.org/mailman/listinfo/python-dev > Unsubscribe: https://mail.python.org/mailman/options/python-dev/steve% > 40holdenweb.com >
_______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com