我们知道对于一般的单字符,比如‘a'
对于i = 'a', b = 'a'
id(i) = id(b)成立,因为单字符存在字符缓冲池中,
对于字符串比如
i = 'abcdef', b = 'abcdef'
id(i) = id(b)也成立,因为这些字符串会被Intern,所以i和b实际上指向的是同一个内存地址
但是这种情况呢?
i = ‘<abs', b= '<abs'
id(i)=id(b)?,在python解释器下一测试发现,唉妈呀,不等!这应该是Intern机制网开的那一面吧!
凡是一’<'开头的字符串(注意是字符串,字符'<'是存放在字符缓冲池中的)是不会被Intern的!!
所以在PyDictObject中扮演很重要角色的dummy即'<dummy key>'的Python字符串才能是具有唯一的
内存地址!!