麻豆黑色丝袜jk制服福利网站-麻豆精品传媒视频观看-麻豆精品传媒一二三区在线视频-麻豆精选传媒4区2021-在线视频99-在线视频a

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  應聘面試  >  Python面試題  > 假設你使用的是官方的CPython,說出下面代碼的運行結果

假設你使用的是官方的CPython,說出下面代碼的運行結果

來源:千鋒教育
發布人:wjy
時間: 2022-08-22 16:16:00 1661156160

點評:下面的程序對實際開發并沒有什么意義,但卻是CPython中的一個大坑,這道題旨在考察面試者對官方的Python解釋器到底了解到什么程度。

a, b, c, d = 1, 1, 1000, 1000 print(a is b, c is d) def foo(): e = 1000 f = 1000 print(e is f, e is d) g = 1 print(g is a) foo() 

 結果: True False True False True 

上面代碼中 a is b的結果是True但c is d的結果是False,這一點的確讓人費解。這個結果是因為CPython出于性能優化的考慮,把頻繁使用的整數對象用一個叫small_ints的對象池緩存起來造成的。

small_ints緩存的整數值被設定為[-5, 256]這個區間,也就是說,如果使用CPython解釋器,在任何引用這些整數的地方,都不需要重新創建int對象,而是直接引用緩存池中的對象。

如果整數不在該范圍內,那么即便兩個整數的值相同,它們也是不同的對象。

CPython底層為了進一步提升性能還做了一個設定:對于同一個代碼塊中值不在small_ints緩存范圍之內的整數,如果同一個代碼塊中已經存在一個值與其相同的整數對象,那么就直接引用該對象,否則創建新的int對象。

需要大家注意的是,這條規則對數值型適用,但對字符串則需要考慮字符串的長度,這一點可以自行證明。

擴展:如果你用PyPy(另一種Python解釋器實現,支持JIT,對CPython的缺點進行了改良,在性能上優于CPython,但對三方庫的支持略差)來運行上面的代碼,你會發現所有的輸出都是True。

CPython代碼的運行結果

tags:
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
主站蜘蛛池模板: 18女人毛片大全| 亚洲国产精品一区二区久久| 乱人伦中文字幕电影| 一二三四社区在线中文视频| 国产高清在线不卡| 偷窥自拍10p| 色诱久久av| 老子影院午夜伦不卡| 欧美激情xxxx性bbbb| yy6080欧美三级理论| 男人边摸边吃奶边做下面| 国产剧情麻豆剧果冻传媒视频免费 | 欧美精品亚洲精品日韩专区va| 91久久麻豆| 天天操天天干天天干| 大伊香蕉精品一区视频在线| 亚洲国产精品一区二区第四页| 3d动漫精品一区二区三区| 日本精品一区二区三区在线视频 | 交换年轻夫妇5| 免费大黄网站| 国产人妖ts在线观看免费视频| 陪读妇乱子伦小说| 免费看的黄色大片| 男女生差差差很痛的app| 国产高清日韩| 亚洲免费网站观看视频| 日本护士69xxxx免费| 美女扒开尿口直播| 日韩精品无码一区二区三区| 韩国无遮挡羞羞漫画| 亚洲色在线视频| 亚洲s色大片| 播五月婷婷| 午夜性色一区二区三区不卡视频| 四虎永久网址在线观看| 久久天天躁日日躁狠狠躁| 欧美成人在线视频| 日本成人在线免费| 国产欧美va欧美va香蕉在| 娇妻当着我的面被4p经历|