麻豆黑色丝袜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
主站蜘蛛池模板: 真实国产乱子伦对白视频 | 日韩高清在线不卡| 加勒比色综合久久久久久久久 | 亚洲综合色丁香婷婷六月图片| 狼群视频在线观看www| 欧美三级电影免费| 日本三级中文字版电影| 妖精的尾巴国语版全集在线观看 | 国产白丝在线观看| 日本一道在线日本一道高清不卡免费| 99久久精品费精品国产| 天天夜夜狠狠| 欧美巨大xxxx做受高清| 中文乱码精品一区二区三区| 免费在线一区| 韩国三级香港三级日本三级| 国产| 国产男女猛烈无遮挡免费视频 | 免费污视频在线| 中文毛片无遮挡高清免费| 久久精品国产69国产精品亚洲| а√天堂资源地址在线官网| 337p中国人体啪啪| 黄色一极片| 孕交动漫h无遮挡肉| 嗯!啊!使劲用力在线观看| 全彩无修本子里番acg| 蜜柚视频影院在线播放| 中文字幕亚洲综合久久菠萝蜜| 亚欧洲精品在线视频免费观看 | 免费动漫人物扑克软件网站| 色涩综合| 欧美性生活视频免费| 伊人丁香狠狠色综合久久| 日本年轻的妈妈| 91久久麻豆| 欧美人与牲动交xxxx| www.俺去| 美美女高清毛片视频免费观看| 乱乳大欲| 国产精品99久久久久久www|