您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“Python實(shí)用工具FuckIt.py的示例分析”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Python實(shí)用工具FuckIt.py的示例分析”這篇文章吧。
FuckIt.py 使用了最先進(jìn)的技術(shù)能夠使你的代碼不管里面有什么樣的錯(cuò)誤,你只管 FuckIt,程序就能“正?!眻?zhí)行,兵來將擋水來土掩。
還是先來看個(gè)例子怎么使用的吧。
安裝
pip install fuckit
假設(shè)有一個(gè)目標(biāo)文件: broke.py
def f(): broken_code print('fuckit chaining works') for let's just assume this is a big module of shitty code. x = y y = x 1 / 0 # Oh shhhiiiiiii var = "Are you proud of what you've done?"
broke.py 中有幾處明顯的錯(cuò)誤,包括語(yǔ)法錯(cuò)誤,變量 broken_code 沒有被定義,還有0當(dāng)作被除數(shù)。
如果直接 import broke 肯定會(huì)報(bào)錯(cuò)
>>> import broke File "broke.py", line 5 for ^ SyntaxError: invalid syntax
這時(shí)你可以使用 fuckit 將 broke 導(dǎo)入進(jìn)來。
>>> import fuckit >>> fuckit("broke") <module 'broke' from 'broke.py'> >>> broke <module 'broke' from 'broke.py'>
調(diào)用函數(shù) f 的時(shí)候也會(huì)報(bào)錯(cuò)
>>> broke.f() NameError: global name 'broken_code' is not defined
你可以使用鏈?zhǔn)?fuckit 來調(diào)用這個(gè)有問題的函數(shù)
>>> fuckit(broke).f() fuckit chaining works
或者
>>> fuckit(fuckit("broke")).f() fuckit chaining works
除此之外,fuckit 還可以作為裝飾器和上下文管理器來使用。
裝飾函數(shù)
>>> @fuckit ... def broken_function(): ... non_existant_variable # Let's create a NameError ... return 'Function decorator works' ... >>> print(broken_function()) None
裝飾類
>>> @fuckit ... class BrokenClass(object): ... def f(self): ... self.black_hole = 1 / 0 ... return 'Class decorator works' ... >>> print(BrokenClass().f()) None
上下文管理器
>>> with fuckit: ... print('Context manager works') ... raise RuntimeError() ...
等價(jià)于
try: print('Context manager works') except RuntimeError: pass
看到這里,是不是感覺 fuckit 很暴力,那么它能用在什么場(chǎng)景?個(gè)人認(rèn)為這個(gè)庫(kù)很雞肋,因?yàn)槟愕拇a不應(yīng)該容忍這些錯(cuò)誤的出現(xiàn),如果出現(xiàn)了錯(cuò)誤應(yīng)該立馬修復(fù)才是,但有一種可能的使用場(chǎng)景是你剛接手一份超復(fù)雜的代碼,里面各種看不懂的代碼,而這些操蛋的代碼時(shí)不時(shí)出現(xiàn)一個(gè)錯(cuò)誤,而你又沒法駕馭它的時(shí)候,你就用 fuckit 吧。
以上是“Python實(shí)用工具FuckIt.py的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。