'is'運(yùn)算符與非緩存整數(shù)意外地運(yùn)行在玩Python解釋器時(shí),我偶然發(fā)現(xiàn)了關(guān)于is運(yùn)算符的這個(gè)沖突的情況:如果評(píng)估發(fā)生在它返回的函數(shù)中True,如果它在外部完成則返回False。>>> def func():... a = 1000... b = 1000... return a is b...>>> a = 1000>>> b = 1000>>> a is b, func()(False, True)由于is運(yùn)營(yíng)商評(píng)估id()的參與對(duì)象,這意味著a并b指向同一個(gè)int函數(shù)內(nèi)聲明的時(shí)候?qū)嵗齠unc,但是,相反,它們指向一個(gè)不同的對(duì)象時(shí),它的外面。為什么會(huì)這樣?注意:我知道identity(is)和equal(==)操作之間的區(qū)別,如了解Python的“is”操作符中所述。另外,我也知道python正在對(duì)范圍內(nèi)的整數(shù)執(zhí)行緩存,[-5, 256]如“is”中所述,運(yùn)算符與整數(shù)一起出現(xiàn)意外行為。 這不是這里的情況,因?yàn)閿?shù)字超出了該范圍,我確實(shí)想要評(píng)估身份而不是平等。
'is'運(yùn)算符與非緩存整數(shù)意外地運(yùn)行
開(kāi)心每一天1111
2019-09-16 12:05:29