["python","unicode"]
Does Python forbid two similarly looking Unicode identifiers?

I was playing around with Unicode identifiers and stumbled upon this: >>> 𝑓, x = 1, 2 >>> 𝑓, x (1, 2) >>> 𝑓, f = 1, 2 >>> 𝑓, f (2, 2) What's going on here? Why does Python replace the object referenced by 𝑓, but only sometimes? Where is that behavior described?
PEP 3131 -- Supporting Non-ASCII Identifiers says All identifiers are converted into the normal form NFKC while parsing; comparison of identifiers is based on NFKC. You can use unicodedata to test the conversions: import unicodedata unicodedata.normalize('NFKC', '𝑓') # f which would indicate that '𝑓' gets converted to 'f' in parsing. Leading to the expected: 𝑓 = "Some String" print(f) # "Some String"