麻豆黑色丝袜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
主站蜘蛛池模板: 濑亚美莉在线视频一区| 99热99操99射| 麻豆视频传媒二区| 久久精品无码一区二区三区| 一区二区3区免费视频| 啊v在线视频| 在线免费观看污污视频| 老师你好电影高清完整版在线观看| 欧美老人巨大xxxx做受视频| 国内a级毛片免费···| 琪琪色在线观看| 国内精品视频一区二区八戒| 中国老人倣爱视频| 欧美成年黄网站色视频| 亚洲蜜芽在线精品一区| 里番库全彩本子彩色h琉璃| 成年女人免费视频播放体验区| 99久久久精品免费观看国产| 天天夜夜狠狠| 久久久久久久国产精品电影| 国产va在线播放| 日韩欧美高清在线| 国语第一次处破女| 国模吧双双大尺度炮交gogo| ipx-412天海翼在线播放| 星空无限传媒好闺蜜2| 国产高清在线不卡| 欧美最猛性xxxxx69交| 再深点灬舒服灬太大了网站| 美女张开腿让男人桶的视频| 成人777777| 波多野结衣与上司出差| 日韩免费一区二区三区| 又黄又爽视频好爽视频| 在线免费观看色片| 韩国电影中文字幕在线观看 | 亚洲日韩中文字幕在线播放| 欧美成人看片黄a免费看| 全肉高h动漫在线看| 在线观看亚洲专区| 色成快人播电影网|