第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

為什么(0-6)是-6 =假?

為什么(0-6)是-6 =假?

慕的地6264312 2019-08-26 18:55:21
為什么(0-6)是-6 =假?今天我試著調(diào)試我的項(xiàng)目,經(jīng)過(guò)幾個(gè)小時(shí)的分析,我得到了這個(gè):>>> (0-6) is -6False但,>>> (0-5) is -5True你能解釋一下,為什么?也許這是某種錯(cuò)誤或非常奇怪的行為。> Python 2.7.3 (default, Apr 24 2012, 00:00:54) [GCC 4.7.0 20120414 (prerelease)] on linux2>>> type(0-6) <type 'int'>>>> type(-6) <type 'int'>>>> type((0-6) is -6)<type 'bool'>>>> 
查看完整描述

3 回答

?
慕森卡

TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超8個(gè)贊

Python在解釋器中存儲(chǔ)-5到256范圍內(nèi)的整數(shù):它有一個(gè)整數(shù)對(duì)象池,從中返回這些整數(shù)。這就是為什么這些對(duì)象是相同的:(0-5)-5,但不(0-6)-6,因?yàn)檫@些都是當(dāng)場(chǎng)創(chuàng)建。

這是CPython源代碼中的源代碼:

#define NSMALLPOSINTS           257#define NSMALLNEGINTS           5static PyIntObject *small_ints[NSMALLNEGINTS + NSMALLPOSINTS];

查看CPython的源代碼/trunk/Objects/intobject.c)。源代碼包括以下注釋:

/* References to small integers are saved in this array so that they
   can be shared.
   The integers that are saved are those in the range
   -NSMALLNEGINTS (inclusive) to NSMALLPOSINTS (not inclusive).
*/

然后,is運(yùn)算符將它們(-5)相等,因?yàn)樗鼈兪窍嗤膶?duì)象(相同的內(nèi)存位置),但是另外兩個(gè)新的整數(shù)(-6)將位于不同的內(nèi)存位置(然后is不會(huì)返回True)。注意,257在上面的源代碼中是正整數(shù),因此是0 - 256(包括)。

來(lái)源


查看完整回答
反對(duì) 回復(fù) 2019-08-26
?
皈依舞

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超3個(gè)贊

這不是一個(gè)錯(cuò)誤。is不是一個(gè)平等的考驗(yàn)。==會(huì)給出預(yù)期的結(jié)果。

這種行為的技術(shù)原因是Python實(shí)現(xiàn)可以自由地將同一個(gè)常量值的不同實(shí)例視為同一個(gè)對(duì)象或不同的對(duì)象。您正在使用的Python實(shí)現(xiàn)選擇使某些小常量共享同一個(gè)對(duì)象,以節(jié)省內(nèi)存。您不能依賴于此版本與版本相同的版本或不同的Python實(shí)現(xiàn)。


查看完整回答
反對(duì) 回復(fù) 2019-08-26
  • 3 回答
  • 0 關(guān)注
  • 852 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)