Message318250
There is a loophole in the Unicode normalisation which allows the creation of names matching keywords.
class Spam:
locals()['if'] = 1
Spam.π’π # U+1D422 U+1D41F
# returns 1
Those two characters are 'MATHEMATICAL BOLD SMALL I' and 'MATHEMATICAL BOLD SMALL F'. They ought to be normalised to "if", which is a keyword.
Of course Spam.if is a syntax error, and I believe Spam.π’π ought to be as well.
Another example:
py> globals()['for'] = 2
py> πor
2
I also asked about this here:
https://mail.python.org/pipermail/python-dev/2018-May/153619.html |
|
Date |
User |
Action |
Args |
2018-05-31 04:53:09 | steven.daprano | set | recipients:
+ steven.daprano, vstinner, ezio.melotti |
2018-05-31 04:53:09 | steven.daprano | set | messageid: <1527742389.0.0.682650639539.issue33705@psf.upfronthosting.co.za> |
2018-05-31 04:53:08 | steven.daprano | link | issue33705 messages |
2018-05-31 04:53:08 | steven.daprano | create | |
|