麻豆黑色丝袜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
主站蜘蛛池模板: 足本玉蒲团在线观看| 故意打开双腿让翁公看| 久热精品在线| 欧美性理论片在线观看片免费 | 一道本在线播放| 亚洲综合色丁香婷婷六月图片| 两人夜晚打扑克剧烈运动| 性做久久久久久| 国产女人好紧好爽| 伦理h动漫| 精品天海翼一区二区| 日本三级电影网址| 在线视频一二三区2021不卡| 美女pk精子| 国产精华av午夜在线观看| 国产影片中文字幕| 日韩aaa电影| 欧美激情高清整在线| 大佬的365天第三季完整视频在线观看| 老汉扛起娇妻玉腿进入h文| 嫩草影院精品视频在线观看| 韩国女主播一区二区| 久久精品一区二区三区不卡| 国产视频一区二| 妇乱子伦激情| 在线黄色毛片| 久久er99热精品一区二区| 国产一区二区三区精品视频| 一边摸一边叫床一边爽| 草草浮力影视| 最近高清国语中文在线观看免费| 天天草夜夜草| 又黄又无遮挡| 亚洲va韩国va欧美va| 宅男影院在线观看| 一级做α爱**毛片| 啊灬啊灬啊灬快灬深一| 太深了灬太大了灬舒服| 久久精品a亚洲国产v高清不卡| 含羞草实验室入口免费网站直接| 日日插天天干|