一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

說說Python中猴子補(bǔ)丁是什么?

 程序IT圈 2021-01-16

公眾號(hào)新增加了一個(gè)欄目,就是每天給大家解答一道Python常見的面試題,反正每天不貪多,一天一題,正好合適,只希望這個(gè)面試欄目,給那些正在準(zhǔn)備面試的同學(xué),提供一點(diǎn)點(diǎn)幫助!

小猿會(huì)從最基礎(chǔ)的面試題開始,每天一題。如果參考答案不夠好,或者有錯(cuò)誤的話,麻煩大家可以在留言區(qū)給出自己的意見和討論,大家是要一起學(xué)習(xí)的 。

廢話不多說,開始今天的題目:

問:說說Python中猴子補(bǔ)丁是什么?

答:在Ruby、Python等動(dòng)態(tài)編程語言中,猴子補(bǔ)丁僅指在運(yùn)行時(shí)動(dòng)態(tài)改變類或模塊,為的是將第三方代碼打補(bǔ)丁在不按預(yù)期運(yùn)行的bug或者feature上 。在運(yùn)行時(shí)動(dòng)態(tài)修改模塊、類或函數(shù),通常是添加功能或修正缺陷。猴子補(bǔ)丁在代碼運(yùn)行時(shí)內(nèi)存中發(fā)揮作用,不會(huì)修改源碼,因此只對(duì)當(dāng)前運(yùn)行的程序?qū)嵗行?。因?yàn)楹镒友a(bǔ)丁破壞了封裝,而且容易導(dǎo)致程序與補(bǔ)丁代碼的實(shí)現(xiàn)細(xì)節(jié)緊密耦合,所以被視為臨時(shí)的變通方案,不是集成代碼的推薦方式。

至于為什么名字叫猴子補(bǔ)丁?

網(wǎng)絡(luò)上有兩種解釋

1,一種解釋,起源于Zope框架,大家在修正Zope的Bug的時(shí)候經(jīng)常在程序后面追加更新部分,這些被稱作是“雜牌軍補(bǔ)丁(guerilla patch)”,后來guerilla就漸漸的寫成了gorllia(猩猩),再后來就寫了monkey(猴子)。

2,第二種解釋是說由于這種方式將原來的代碼弄亂了(messing with it),在英文里叫monkeying about(頑皮的),所以叫做Monkey Patch。

monkey patch的應(yīng)用場(chǎng)景

stackoverflow上有個(gè)比較熱的例子,很多代碼用到 import json,后來發(fā)現(xiàn)ujson性能更高,如果覺得把每個(gè)文件的import json 改成 import ujson as json成本較高,或者說想測(cè)試一下用ujson替換json是否符合預(yù)期,只需要在入口加上:

import json
import ujson

def monkey_patch_json():  
    json.__name__ = 'ujson'  
    json.dumps = ujson.dumps
    json.loads = ujson.loads

monkey_patch_json()

猴子補(bǔ)丁還可以在運(yùn)行時(shí)動(dòng)態(tài)增加模塊的方法,這種場(chǎng)景也比較多,比如我們引用團(tuán)隊(duì)通用庫里的一個(gè)模塊,又想豐富模塊的功能,除了繼承之外也可以考慮用Monkey Patch。

最后,可能這篇文章解釋的不是很具體,大家可以看看下面這個(gè)鏈接,都是國(guó)外大神的解釋,相信你會(huì)學(xué)到更多東西的!

https:///questions/5626193/what-is-monkey-patching

如果對(duì)于參考答案有不認(rèn)同的,大家可以在評(píng)論區(qū)指出和補(bǔ)充,歡迎留言!

1、談?wù)剬?duì) Python 和其他語言的區(qū)別?

2、談?wù)剬?duì) Python3 和 Python2 的區(qū)別?

3、Python 的特點(diǎn)和優(yōu)點(diǎn)是什么?

4、說說Python解釋器種類以及特點(diǎn)?

5、說說4種常用編碼的區(qū)別?

6、說說Python面向?qū)ο笕筇匦?

7、說說Python中有幾種數(shù)據(jù)類型?

8、說說Python中xrange和range的區(qū)別?

9、Python變量、函數(shù)、類的命名規(guī)則?

10、說說Python可變與不可變數(shù)據(jù)類型?

11、說說Python模塊主要分哪三類?

12、列舉Python中的標(biāo)準(zhǔn)異常類?

13、Python中深拷貝與淺拷貝的區(qū)別?

14、Python中迭代器和生成器的區(qū)別?

15、Python可迭代對(duì)象怎么獲取迭代器?

16、你了解什么是 Python 之禪么?

17、說說Python字典以及基本操作?

18、說說Python有幾種字符串格式化?

19、說說Python多線程與多進(jìn)程的區(qū)別?

20、說說HTTP常見響應(yīng)狀態(tài)碼?

21、Python 單引號(hào)、雙引號(hào)、三引號(hào)區(qū)別?

關(guān)注小猿公眾號(hào),每天學(xué)習(xí)一道題

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    国内胖女人做爰视频有没有| 一区二区在线激情视频| 五月激情婷婷丁香六月网| 免费播放一区二区三区四区| 国产免费黄片一区二区| 亚洲欧美日韩色图七区| 国内外免费在线激情视频| 欧美日韩免费黄片观看| 日韩成人h视频在线观看| 久久精品一区二区少妇| 91插插插外国一区二区婷婷| 亚洲中文字幕视频在线观看| 婷婷九月在线中文字幕| 国产精品不卡免费视频| 国产老熟女乱子人伦视频| 偷拍洗澡一区二区三区| 亚洲最新中文字幕在线视频| 中文人妻精品一区二区三区四区| 日韩精品一区二区三区含羞含羞草| 日韩中文字幕人妻精品| 一区二区三区免费公开| 欧美黑人在线精品极品| 国产综合欧美日韩在线精品| 深夜视频在线观看免费你懂| 日本精品最新字幕视频播放| 国产麻豆一区二区三区在| 香蕉网尹人综合在线观看| 国产精品欧美激情在线播放| 午夜成年人黄片免费观看| 国产精品亚洲一区二区| 日韩成人中文字幕在线一区| 高清不卡视频在线观看| 免费观看一级欧美大片| 在线一区二区免费的视频| 精品日韩中文字幕视频在线| 国产精品视频一区麻豆专区| 亚洲深夜精品福利一区| 国产欧美高清精品一区| 国产精品福利精品福利| 五月天丁香亚洲综合网| 国产中文字幕久久黄色片|