溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python實(shí)用工具FuckIt.py的示例分析

發(fā)布時(shí)間:2021-09-09 09:23:46 來源:億速云 閱讀:292 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要為大家展示了“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è)資訊頻道!

向AI問一下細(xì)節(jié)

免責(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)容。

AI