您好,登錄后才能下訂單哦!
今天小編給大家分享一下Python的FuckIt.py怎么使用的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來(lái)了解一下吧。
FuckIt.py 使用了最先進(jìn)的技術(shù)能夠使你的代碼不管里面有什么樣的錯(cuò)誤,你只管 FuckIt,程序就能“正?!眻?zhí)行,兵來(lái)將擋水來(lái)土掩。
還是先來(lái)看個(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 沒(méi)有被定義,還有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)來(lái)。
>>> 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 來(lái)調(diào)用這個(gè)有問(wèn)題的函數(shù)
>>> fuckit(broke).f()
fuckit chaining works
或者
>>> fuckit(fuckit("broke")).f()
fuckit chaining works
除此之外,fuckit 還可以作為裝飾器和上下文管理器來(lái)使用。
裝飾函數(shù)
>>> @fuckit
... def broken_function():
... non_existant_variable # Let's create a NameError
... return 'Function decorator works'
...
>>> print(broken_function())
None
裝飾類(lèi)
>>> @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
看到這里,是不是感覺(jué) 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ò)誤,而你又沒(méi)法駕馭它的時(shí)候,你就用 fuckit 吧。
以上就是“Python的FuckIt.py怎么使用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(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)容。